有一门课的作业是在一个老旧的远程作业系统上完成的,使用热点没办法打开,只有用校园网(校园 WiFi 和寝室宽带)才能正常使用。
但是呢,校园网一个账号只能同时在线一个客户端,要在例如图书馆之类的使用作业系统就只有连校园 Wifi,也就是说必须得关掉寝室的网络,但是寝室有不关机的一个小主机,每次都要去路由器后台断掉明显是不可行的。
于是呢,就有了这么一个方案,前提就是一个 VPS,一个在寝室在线的服务器。
我是 Debian,简单使用,用 APT 装好就可以用。
sudo apt-get install shadowsocks-libev
安装并配置 rng-tools (这是一个随机数生成工具)
sudo apt-get install rng-tools
并在 /etc/default/rng-tools 加上一句 HRNGDEVICE=/dev/urandom
echo "HRNGDEVICE=/dev/urandom" | sudo tee -a /etc/default/rng-tools
重启 rng-tools
sudo systemctl restart rng-tools.service
编写 Shadowsocks 配置文件:
sudo vim /etc/shadowsocks-libev/config.json
会有如下内容:
{
"server":["::1", "0.0.0.0"],
"mode":"tcp",
"server_port":8388,
"local_port":1080,
"password":"replace_with_your_password",
"timeout":60,
"method":"chacha20-ietf-poly1305"
}
追求最简单配置的话,这里修改密码即可。(mode 默认是 UDP-TCP,但是为了 FRP 这边配置简单,就修改成了 TCP 模式)
重启 Shadowsocks
sudo systemctl restart shadowsocks-libev
到这里,Shadowsocks 就搭建完成了。
(这里默认你已经有可用的 FPRS 服务端和 FRPC 客户端了,需要教程可以参考这里)
Frpc 这部分的配置:
[ss]
type = tcp
local_port = 8388
local_ip = 127.0.0.1
remote_port = 7073
local_port 是对应 Shadowsocks 配置里面的 server_port ,remote_port 是服务端映射的端口,也是等会儿你在代理客户端要用到的端口。
重启 FRPC
sudo systemctl restart frpc.services
#你应该按照自己的部署方法来选择
记得在服务端开放 remote_port
我用到的是 CFW 的 TAP 模式 在规则里面加上规则
- IP-CIDR,233.33.33.0/24,DIY
IP 是我这个作业系统的服务器,/24 是 IP-CIDR 表示在 233.33.33.1-233.33.33.254 的 IP 都走 DIY 这个代理组,节点需要在 DIY 这个代理组。
我完整的方案是我有一个自己建的 Subconverter 服务,在profile 里面加上这个节点的 URL 就可以更新订阅时带着这个节点。
Shadowsocks 链接的生成方法可以用浏览器的控制台,具体方法如下:
F12 打开控制台,输入:
> console.log( "ss://" + btoa("chacha20-ietf-poly1305:password@192.168.100.1:7073"))
第二对括号里面的内容按照加密方式:密码@你的FRPS服务器IP:你的remote_port
复制输出的内容即可。如要给节点命名可以修改成 ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpwYXNzd29yZEAxOTIuMTY4LjEwMC4xOjcwNzM#节点名称
结合 Proxifier 和 Shadowsocks windows
单独运行一个 Shadowsocks 客户端,添加这个节点,使这个客户端的本地端口监听在一个不同的端口,例如 1081,Proxifier 添加这个代理,并添加这个程序走这个代理。