CaptainChen

实验室挂代理宿舍免费上网折腾小记

大四保研狗,提前进实验室,发现实验室登陆校园网账号后是不走自己账号流量的。考虑到最近搞深度学习台式机使用Ubuntu系统,不免心生邪念,何不搭建一个shadowsocks server实现宿舍免流上网呢?花了一点点时间就配置完成,100M网速速度感人!

1. 获取公网IP

博主几天前撸了一个斐讯K2刷上老毛子Padavan固件,想放实验室配置无线IPv6使用,结果发现网线插到路由器上并不能上网。然后得知北航新主楼使用静态IP上网,这估计也是为了防止滥用网络以及方便设置免流IP段。在不想“麻烦”网管的情况下,随便进了一个路由器后台,获取了网关IP,然后为避免冲突,在我的路由器上把网关IP最后一个数随便改为一个不常用的数设置为本机公网IP,结果就直接连上了,哈哈哈。

总之第一步就是获取公网IP,方法很多,最简单的百度“IP”即可(有时候又不太准,貌似去Ookla speedtest测速界面查出的ip很准)。

2. 配置端口转发

由于后面shadowsocks server我开的是443端口,因此这里我要对443端口进行转发。

  • 台式机Ubuntu上

(1)修改/etc/sysctl.conf文件:

删除“# net.ipv4.ip_forward = 1”行前面的“#”来取消注释。 若要使用IPv6,把对应的也取消注释。

(2)端口映射:

1
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

(3)重启电脑

  • 路由器上

这里是Padavan固件设置方法,其他路由类似。在端口转发里面如下设置即可:

服务名称 源IP地址 端口范围 内网IP 本地端口 协议
HTTP *.*.*.* 443 本机局域网IP 443 Both

然后重启路由器

3. 台式机服务端设置

  1. 安装shadowsocks python版:
1
2
sudo apt-get install python-gevent python-pip
sudo pip install shadowsocks
  1. 填写shadowsocks server的json配置文件:

新建/etc/shadowsocks.json文件,里面填写:

1
2
3
4
5
6
7
8
9
10
{
"server":"::",
"local_address":"127.0.0.1",
"local_port":6153,
"timeout":300,
"method":"rc4-md5",
"server_port":443,
"password":"password",
"fast_open":false
}

由于我开启了IPv6,因此server填写”::”。考虑到我服务端本地还要运行一个shadowsocks client实例,因此为了避免冲突,local_port不选1080,而是随便选了一个6153端口。另外,为了提高性能,加密方式选用rc4-md5。

然后台式机上执行:

1
ssserver -c /etc/shadowsocks.json -d start

即可让shadowsocks server在后台启动运行。

可以考虑让server开机自启动,这样不用每次开机都得输入一次命令,方法如下:

(1) 创建脚本/etc/init.d/shadowsocks,里面写上:

1
sudo nohup ssserver -c /etc/shadowsocks.json -d start

(2) 增加这个文件的可执行权限:

1
sudo chmod +x /etc/init.d/shadowsocks

(3) 在rc.d中新增:

1
sudo update-rc.d shadowsocks defaults

即可完成开机自启。

4. 宿舍客户端设置

宿舍shadowsocks客户端IP地址填台式主机的公网IP,其他按照服务端json文件填写即可。

由于我使用Mac上的Surge,只需添加下面一行代理配置即可:

1
代理名称= custom,公网IP,443,rc4-md5,password,http://abclite.cn/SSEncrypt.module

成功!这样,只要连着校园网,挂上代理就能免登录免流上网!

最后上效果图:

没错,就是传说中的千!兆!网!
以及最近几天的流量使用情况,应该上行部分就是传到宿舍电脑的流量,都是白花花的银子啊哈哈哈:

觉得文章不错,就赏我一杯咖啡钱吧~