内网穿透实现外网访问校园网内网

由于enterdawn所在学校的跑操有一个点没有学校的wifi覆盖,学校的跑操系统又不对外开放,导致enterdawn无法查看是否刷上了那个点,所以enterdawn利用手上的资源,搞了一个内网穿透。

设备:树莓派一台(有线连接校园网,无线连接某运营商提供的互联网,二者均无公网IP)),云服务器一台(一个公网IP)。

首先下载并解压frp(https://github.com/fatedier/frp/releases/,服务端和客户端分别选择对应的系统)到服务端(云服务器)和客户端(我用的树莓派,win的机器也可以),二者版本号必须相同。

服务端只需要frps.ini和frps两个文件,其他文件可以删了。同理,客户端也只需要frpc.ini和frpc两个客户端。

然后,编辑服务端的frps.ini,如下:

[common]
bind_port = 7000
token = token_value

其中bind_port为验证端口,可自定义,不要忘了到服务器安全组里面放行这个端口。token是验证口令,随便填一个喜欢的字符串即可。

然后在frp所在的目录下运行:

./frps -c ./frps.ini

无报错即可。

由于我的树莓派无线连接到宿舍的路由器,我可以直接走局域网进行ssh连接。不过由于有线网络的优先级比无线网高,我通过以下命令进行修改(我通过wget进行下载,如果你可以直接连接到网络,或者下载到个人电脑再上传过去,可以忽略这一步):

sudo route add default gw 192.168.1.1

后面的192.168.1.1是路由器网关的IP,如果不知道可以使用ip route show查一下。

然后再删除:

 sudo route del default gw 192.168.1.1

windows可以无需校园网认证直接通过无线访问外网,同时也能访问内网。但树莓派只能通过优先级高的网络对外连接,另外的网络只能作为局域网使用(跑操系统用的是学校202.199开头的公网IP做网址,不会被视为局域网地址,但只有校内才能访问)。

如果你使用windows,可以忽略这一段。由于我校校园网需要认证(可能会产生费用),我们可以选择安装远程桌面并登录,也可以抓包之后写个登录脚本,以便能通过校园网访问互联网。

然后我们编辑客户端的frpc.ini:

[common]
server_addr = your_server_ip
server_port = 7000
token = token_value
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc

server_addr后面填服务器的公网IP,server_port和token与服务端一致。我们这里使用http_proxy模式,remote_port为http代理所在端口。plugin_http_user和plugin_http_passwd可以删掉,分别是代理的用户名和密码。

然后在frp所在的目录下运行:

./frpc -c ./frpc.ini

这时候服务端就会出现已经客户端连接的消息了,二者都没有无报错即可。

我们在linux上可以使用如下的指令让frp后台运行,Windows端开一个cmd挂着就行了。

nohup ./frps -c frps.ini & 

之后,我们可以通过配置系统代理的方式来连接校园网,配置方法不再赘述。不过,因为http是明文传输,此方法无法保证数据传输过程中的安全性。

知识共享许可协议
Text is available under CC BY-NC-SA 4.0 unless otherwise stated.

除非特殊声明,本站所有内容均以 CC BY-NC-SA 4.0协议授权。
上一篇
下一篇