过去的一个月除了反复横跳的疫情,就是一日如一日的学校生活了。在新的办公室,有了新的日常生活,折腾当然是必不可少的,就是好像并没有什么意义……
一、硬件及组网
十月的时候办公室置办台式机的事定下来了,预算5k左右买品牌机或者自行组装。在包含显示器和外设的情况下,买品牌机这样的预算肯定缩水的地方比较多(普遍是i5+16G的组合)。在这之前我也大概规划了一下自己的需求,肯定是自行组装更划算。
电脑这方面非常感谢@CLAM提供的一些建议。一开始博主考虑的是更稳定的Intel平台,不过目前热销的大多是尾缀F
的无核显版本,这意味着要单独安装一块独显,虽然矿潮已经过去但是看得过去的N卡也在1k左右。再就是办公的需求不需要太强的显卡性能,毕竟不跑深度学习。恰逢双十一前夕,AMD的R5 5600G已经来到了800元的价位,CPU部分与十代i5不相上下、核显能够达到750的水平,在各方面都十分切合我的需求,于是平台和CPU也就这样定下来了。其他的部件也是权衡价格和性能的权衡,毕竟要包含显示器、新办公室还得置办些网络相关的东西。
▲主板:我选择的是技嘉的
B550M-DS3H
,这块在500左右并且考虑了一点未来扩展性,它有4根内存插槽和2根M.2
插槽,主板核显输出有两个DP/HDMI数字口也可以迎合双屏需求。
▲内存:日常使用数据分析场景比较多,AMD的内存控制器相对较弱、APU性能很受双通道限制,最终选择的是2根英睿达3200MHz
的内存条。
▲硬盘:固态选择了相比上代缩水的西数SN570 1T
,看的致钛Ti5000
和铠侠RC20
分别有掉盘和高温的问题,虽然西数不支持个人送保、冷数据问题也处理的一塌糊涂,不过产品本身稳定性并没有什么问题。
▲电源:电源选择了台达NX450
,这是一台电脑最不能省钱的地方。我的这套配置功耗峰值应该超不过150瓦,新方案的电源普遍瓦数比较大也不便宜,台达虽然是十多年前的方案了不过口碑和可靠性都经过了时间的验证。
▲屏幕:CLAM推荐的优派VA2962HD
,带鱼屏一屏两个Excel看起来很舒服,价格也还是比较划算。
▲其他:其他的外设就是简单、实用,外设选择的是双飞燕的剪刀薄膜
和一直在用的罗技G102
。
整台电脑的所有部件都是在京东自营购买的,快递第二天就全部送到了,而且开发票很方便。虽然说办公的电脑离开的时候会留下,使用期间也大概率不会再进行升级,不过在好用、耐用的基础上为后面保留足够的升级空间或许能够让它发挥更大的价值。这个配置可能并不是最优解,自己装的话肯定会等一等各种优惠云云,额外能省下的钱几百肯定是有的。
在电脑之外就是规划一下办公室的网络设备,之前是在垃圾堆翻出来了一个TP的WR842N古董路由器,办公室2.4GHz的网络环境很差使用体验一言难尽。办公室的座位是中间过道、两侧工位相背,每侧各两个校园网的网口,我试了一圈只有对侧靠窗的一个网口是有电的。要满足两边有线网络需求、又不能把办公室变成盘丝洞,我是在对侧网口处安装一个腾达的入门五口千兆交换机,从交换机引出一根线到我这一侧的水星D121G路由器上,我的电脑就直接通过网线接在D121G上面。
至于为何不给路由器关闭DHCP做纯无线交换机,我是觉得办公室需要一个局域网环境用来给潜在的设备比如手机、无线打印机使用。这个路由器买的时候考虑到坑里去了,我只想到办公室单账号只有15M的网不需要太好的路由器,却没考虑这缩水玩意只有两个LAN口。以后如果真的网口不够用就把WR842N套娃当交换机吧。
二、内网代理
比较惊讶的是,我的办公室114.x
公网和寝室10.x
内网居然是可以直接互通互访的,iperf测试带宽也能达到标称的1Gbps。办公室教育网质量很差而且没有IPv6,而寝室不光有千兆的IPv6还有百兆的移动/电信宽带。于是我在宿舍的笔记本上运行了一个512M的CentOS 7
虚拟机,使其通过两张虚拟网卡同时桥接至有线的校园网和无线的寝室宽带,通过Metric将宽带设置为默认的出口网卡。
这里遇到一个问题就是办公区分配的网络是公网IP,之前的Metric设置会导致到办公室网段被路由到宽带出口,因此需要加一条路由表将该网段引导至校园网的网关。网段信息是从bgp.he.net
查的,该段应该都是学校用于科研区DHCP的IP,直接对/18
段添加路由即可。这条命令重启会失效,所以我放进了rc.local
使其在开机时能够执行一次。
1 |
route add -net 114.213.192.0/18 gw 10.17.10.1 |
连回宿舍的代理先后尝试了思科的AnyConnect
和常规的一些方式,要么就是资源开销比较大要么就是用着太麻烦。后来想到在内网环境下不论宿舍还是办公室上联出口都有安全网关阻断了外网访问,直接使用最简单的HTTP透明代理辅以最简单的认证就可以了啊。用到的工具有点儿不可名状,但是它支持……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
{ "inbounds": [ { "tag": "proxy", "port": 10000, //设置监听端口 "listen": "0.0.0.0", //监听IP,需要对外 "protocol": "http", "settings": { "timeout": 0, "accounts": [ { "user": "username", //认证用户名 "pass": "InsertPassword" //认证密码 } ], "allowTransparent": false, "userLevel": 0 } } ], "outboundDetour": [ { "protocol": "freedom", //最简单的外网访问即可 "settings": {} } ] } |
这样做的好处就是在浏览器中仅用SwitchyOmega
插件就能够实现流量走转发,毕竟这是一个备用的方式只在下载等办公室网络无法满足我需求的情况下才会使用到。
这样做还有个比较意外的好处,就是能够同时支持IPv4+IPv6,在这之前我尝试给AnyConnect
开启IPv6的时候要向iptables添加数条规则实现NAT6搞的很头大。
另外就是通过IPv6去往外部的一个转发,博主宿舍的IPv6是千兆的,平时比较习惯通过IPv6访问CloudFlare上的网站,这里可以转发一个CF端口来到内网v4上用作网站加速访问。这里选择的工具是realm
,基于rust
的轻量端口转发工具,能够实现6to4的转发。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[log] level = "warn" output = "/home/realm/realm.log" [dns] mode = "ipv4_only" protocol = "tcp_and_udp" nameservers = ["223.5.5.5:53", "223.6.6.6:53"] [network] use_udp = true zero_copy = true fast_open = true tcp_timeout = 300 udp_timeout = 30 [[endpoints]] listen = "0.0.0.0:23333" //本地监听端口 remote = "[2606:4700:83b4::1]:443" //远端地址及端口 |
到此,基本上从办公室对寝室访问的事情就解决了,需要的时候随时Switch过去就可以了。
三、内网共享
办公室科研区域的电脑可以不用关机,外部供电也相对比较稳定,既然装了32G的内存显然可以分割一部分做内网服务器。博主网站相关的东西都是基于Linux比较多,另外出于安全和折腾的风险考虑,这些共享的权限还是通过虚拟机来隔离比较好。
我在办公室选择的是最小化安装的Debian10,与Windows宿主目录的交互需要通过VMware Tools挂载。VMware内嵌的Linux端VM Tools已经不再更新了,取而代之的是Open VM Tools。
1 2 3 4 |
# Debian/Ubuntu安装 sudo apt-get install open-vm-tools # CentOS/RHEL安装 sudo yum install open-vm-tools |
虚拟机读取宿主的文件首先要在WMware的【虚拟机设置-选项-共享文件夹】下选择宿主机上要挂载的目录,这里可以控制只读/读写权限来限制用途。
然后在VM内通过执行vmware-hgfsclient
来检查是否共享成功,有返回的的共享目录后即可通过vmhgfs-fuse
将其挂载到VM的目录上进行读取。每次重启后默认不会自动挂载,和上面一样你可以把这条命令放进rc.local
实现开机执行。
1 2 |
#挂载hgfs,把共享目录挂载至/mnt/hgfs vmhgfs-fuse .host:/ /mnt/hgfs |
挂载上来的目录由于是通过VMware Tools中继的,Windows下私有的NTFS格式也并不支持Linux的用户权限设置,因此挂载的目录只能通过root
用户读取并且不可修改。基于web分享的话,就要把nginx
和php-fpm
都跑在root
用户上,注意这是一个非常具高风险的操作不要再生产环境和能够外网访问的服务器上使用。NGINX把nginx.conf
下的user
字段修改为user root root;
即可,php-fpm
则是要修改php安装目录etc
文件夹下的php-fpm.conf
,将listen.owner
和listen.group
修改为root
,然后再去php-fpm
的启动service
中搜索Starting php-fpm
,在它后面的启动指令上加上-R
即可允许使用root用户运行。
这样,不管是PHP目录程序还是NGINX就都可以展示、使用宿主通过hgfs共享的目录了。
刚刚发布的VMware 17终于支持了虚拟机随宿主开机自启,不过博主折腾的时候装的时候还是16,开机自启还是要通过脚本来执行。Win10下开机执行程序和脚本只需要把相应的.bat
或者exe
放置于StartUp文件夹下即可,如果想静默执行也可以通过battoexe
工具封装成exe并隐藏cmd窗口。校园网登录认证也可以以这样的方式执行,参考的是GitHub的项目(点击前往)。
1 2 3 4 5 6 7 |
@echo off #脚本放置于C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp #开机开启虚拟机 D:\Software\VMware\vmrun.exe start "E:\VM\Debian10\Debian10.vmx" #校园网认证 curl -d DDDDD=2022xxxx -d upass=121212 -d 0MKKey= http://172.16.200.13 |
四、结语
最后看以上的探索本身都不是很有意义,这篇博客主要是想记录一下Linux下多网卡的Metric和Route设置、VMware共享文件夹这些小操作,之前从来没有接触到这样的需求。另外就是分享出来看看大家有没有更好的一些建议,听听大家是怎么应对种种奇怪需求的。
最后,祈愿未来在这里三年的学习之路一切顺顺利利吧~
*原创文章,转载无需注明出处
邪恶的教育网最近接了CTGNET
但是我没有任何机器去程可以走得到
真的是接了个寂寞
哪怕负载均衡也好啊
貌似只有ctgnet 官方site测试回程可以走得到
真的是浪费了10G V4出口
蚌埠住了
博主你好,无意中来到你的网站,做得挺好,可以换个友链吗?
生命在于折腾,做了就比啥都没做要好咯。另外如果不准备走学术这条路的话,私底下还是早点把找工作相关的东西多看看多准备,接下来就业市场多半是越来越卷的,有机会多出去实习最好,这些算是我个人的一点小体会吧
寝室配千兆,办公室才配15M…该说什么好呢
详细,收藏抄作业!
搞什么的
一个人就占据教育网1G出口
20G很快就被你们糟蹋光了
我用什么?
搞得卡得一批
真晦气
114.213.192.0的网关 合工大吗 看起来我们应该是校友
说实话我也看不懂这波保留地址和公网地址互通的操作。我猜是公网网关写了条 route 把整个网段的扔给内网网关处理?但是这样的话内联我就想不到怎么实现了。[Thinking Icon]