在公网IP和内网IP那一篇科普中,我在文章里提及了内网穿透这个东西。首先,我先介绍一下内网穿透是个什么东西。话不多说,好戏开始!
内网穿透就是指通过一个服务器当作一个交换机,只不过这个交换机比较智能,它能够实现存储好你的ip+识别码,为你的网络终端一对一服务。也就是说,通过这个比较智能的交换机,别的网络终端可以直接发东西给你。具体流程如下图:
我再解释一下。当别的网络终端发东西给你时,它会先发送到你的服务器,然后由于你的服务器先前已经储存了你的ip地址和识别码,所以你的服务器就可以直接向交换机指定接受设备,也就是你的网络终端。
内网穿透的实现软件有frp和ngork,我这里就以frp为例教大家配置内网穿透。
好介绍完毕,下面开始配置frp。
必须的,你得现有一个服务器或一台拥有公网IP的网络终端。系统最好是Linux。
首先,下载frp。进入GitHub下载界面,分别下载对应的系统的frp。
GitHub下载界面
截止至2020年4月6日,frp最新版本为0.32.1,如图所示:
这里说明一下,使用macOS的小伙伴们要下载darwin版的哦。
下载完成后,解压。Linux下文件解压后看起来是这样子的:
Windows下看上去是这个样子的:
然后,我们就要开始编辑配置文件了。
首先,在服务器端打开frps.ini,Windows & Linux通用。
一般来说,服务器端的配置文件不用更改。除非你的7000端口已经被占用了,不然最好不要改。
然后,放行配置文件上的端口。
这样,服务器端就配置好了!
然后,输入以下命令启动frp服务器端,Windows需要在cmd下执行命令。
Linux下输入
./frps -c frps.ini
Windows下输入
frps.exe -c frps.ini
Windows下执行完命令后,会出现防火墙警告,要把两个全部勾了再确认。
执行完命令后,出现以下提示就代表成功了。
2020/04/06 19:55:08 [I] [service.go:157] frps tcp listen on 0.0.0.0:7000
2020/04/06 19:55:08 [I] [root.go:209] start frps success
然后我们来配置客户端。老样子,编辑配置文件frpc.ini,Windows & Linux通用。
打开之后,配置文件默认应该是这个样子:
[common]
server_addr = 127.0.0.1
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
我来解释一下
[common]
server_addr = 127.0.0.1 //这里更改成你的服务器端的IP地址
server_port = 7000 //这里是你服务器端的端口,如果你没有改就不用动
[ssh]
type = tcp //你可以改成udp,建议不要改动
local_ip = 127.0.0.1 //这里除非是要连接局域网内的其它设备,否则不要改动
local_port = 22 //你的本地计算机的端口,下面我来列举一些常用的端口
remote_port = 6000 //这里填写其它网络终端访问你的服务器时应该访问的端口
常用的端口如下:
SSH:22
Windows远程桌面:3389
FTP:21
VNC:5901
配置完这一些后,记得再服务器端放行remote_port,然后开启客户端。命令如下:
Linux下输入
./frpc -c frpc.ini
Windows下输入
frpc.exe -c frpc.ini
看到以下信息后,就代表启动成功了。
2020/04/06 20:08:17 [I] [service.go:282] [b11995e908c85071] login to server success, get run id [b11995e908c85071], server udp port [0]
2020/04/06 20:08:17 [I] [proxy_manager.go:144] [b11995e908c85071] proxy added: [ssh]
2020/04/06 20:08:17 [I] [control.go:179] [b11995e908c85071] [ssh] start proxy success
然后,服务器端也会有相应的提示:
2020/04/06 20:08:04 [I] [service.go:420] [b11995e908c85071] client login info: ip [223.73.44.77:9305] version [0.32.1] hostname [] os [windows] arch [386]
2020/04/06 20:08:04 [I] [tcp.go:63] [b11995e908c85071] [ssh] tcp proxy listen port [12345]
2020/04/06 20:08:04 [I] [control.go:445] [b11995e908c85071] new proxy [ssh] success
好,本篇【折腾】到此就告一段落了。我是Stephen Zeng,如果有什么写的不好的地方或者你有什么建议或感想,欢迎在底下评论区畅所欲言。我们下篇文章再见!
拜拜ヾ(?ω?`)o