记一次“引网入室”


前言

学校在上个学期升级了校园网,之前允许一个设备登录,然后分享网络,可以实现多台设备使用一个账号,但升级后的网络会检测网络共享,发现后直接强制下线账号。至于检测原理,我也不清楚,一开始猜测是根据流量来检测,使用$$来加密流量,但仅存活了一天便挂掉了。实验室的网络是不用认证,可以直接使用的,并且宿舍和实验室在内网是互通的,于是便有了将实验室的网络引入宿舍的想法。

解决方案

使用一台服务器/电脑搭建PPTP,然后在宿舍使用智能路由器(看来当初没买普通路由器的想法是对的)通过PPTP来连接到实验室的网络,从而实现免认证多人同时上网。宿舍晚上11点断电,路由器设置开机自动PPTP连接,然后就可以实现无痛上网了。

搭建方法

  • 首先我找到了一台破主机,让他从当PPTP服务器角色,放在实验室24小时不关机,为了搭建方便(主要还是因为配置垃圾),给它装了Linux系统,我选择的是Ubuntu 16.04。
  • 然后当然是连接好网络,先保证服务端可以正常上网,然后更改一下镜像源,确保后续安装的速度。
  • 接着更新一下系统。
sudo apt-get -y update
sudo apt-get -y upgrade
  • 然后安装pptpd、iptables、vim。
sudo apt-get install -y pptpd iptables vim
  • 修改配置文件,配置本机和远程ip。
sudo vim /etc/pptpd.conf

# 取消如下两行的注释
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
  • 配置DNS,这一步要注意,一般学校、企业等单位的网络环境比较特殊,有自己的DNS服务器,这里的DNS一定要使用学校的,不要填写公共DNS服务器(如114.114.114.114)。
sudo vim /etc/ppp/pptpd-options

# 把xxx.xxx.xxx.xxx换成自己所处网络环境的DNS地址
ms-dns xxx.xxx.xxx.xxx
  • 设置PPTP服务的连接用户名和密码。
sudo vim /etc/ppp/chap-secrets

#在配置文件末尾输入以下内容,注意用空格隔开
oxygen      pptpd   123456        *
#上面设置用户名为oxygen,密码为123456,可以根据自己的喜好修改
  • 开启内核 IP 转发。
sudo vim /etc/sysctl.conf

# 取消掉IPV4 转发注释
net.ipv4.ip_forward=1

# 使配置生效
sudo sysctl -p
  • 重启PPTP服务。
service pptpd restart
  • 建立 NAT,这里的ens33是网络配置的名称,不同设备名称不同,我这里是ens33,注意修改,可以使用ifconfig命令查看网络配置名称。
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
  • 设置 MTU,防止单个数据包过大
sudo iptables -A FORWARD -s 192.168.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400

至此,我们基本上就已经完成搭建啦,现在可以用其他设备通过PPTP连接服务器,测试是否可以上网,如果上不了网,极大可能性是网卡信息设置错了(比如我自己,卡在这很久)。

如果一切正常,那么可以使用了,但谁能保证24小时不间断开机,每次开机重新启动服务,设置NAT和MTU难免有些麻烦,再加个开机自启基本就完美了。

  • 加入开机自启,这样即使关机了,开机不用执行任何操作,即可直接使用。
sudo vim /etc/rc.local
# 在exit 0 之前加入如下代码,注意第二行那里的网络配置名(ens33)改为你自己的
/etc/init.d/pptpd restart
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
sudo iptables -A FORWARD -s 192.168.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400

到这里算完全搭建完了,但我并信不过我使用的这台主机,所以设置了一下定时重启,如果配置足够的话,这步完全可以忽略,但没办法,为了防止它因为7*24小时工作而宕机,还是配置一下比较好。

  • 配置定时重启。
sudo vim /etc/crontab

# 在文档末尾添加如下信息,注意空格隔开
55  23   *   *   *    root   /sbin/reboot

#以上意思是每天23使55分重启,可以根据自己的情况修改时间

声明:楓の街|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 记一次“引网入室”


Just For Fun...