笔者有一台腾讯云服务器,最近折腾了一下网络相关的知识,就了解了一下内网穿透的知识。笔者以前就写过一篇博文:
使用NATAPP进行内网ssh穿透
用到的是natapp,如果要稳定的服务器地址和端口是需要购买隧道的,相比单独租公网ip的服务器,用natapp性价比还是比较高的。
在有一个公网ip服务器的情况下,用frp实现内网穿透的原理如下图所示:
客户端frpc
处在内网的设备笔者用Android手机代替,在手机上安装termux模拟Linux系统,安装sshd,golang等,下载frp编译,得到frpc客户端和frps服务端程序,处在内网的手机需要的是frpc客户端程序,配置文件frpc.ini
内容为:
[common]
server_addr = 106.52.36.131
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 8022
remote_port = 6000
启动客户端:./frpc -c frpc.ini
服务端frps
服务端安装在公网ip的服务器上,直接下载二进制安装包即可,相应的服务端配置文件frps.ini
内容为:
[common]
bind_port = 7000
启动服务端:./frps -c frps.ini
这样就可以通过公网ip访问处在内网的设备了:
ssh -p 6000 106.52.36.131
注意上面设置了2个端口,7000端口是客户端和服务端通信用的,6000端口才是转发那个(termux是单用户模式,ip地址前面不需要加用户名);termux开启sshd:
# 安装openssh
pkg install openssh
# 开启ssh服务
sshd
# 重置密码
passwd
termux开启的端口默认是8022
参考
https://cloud.tencent.com/developer/article/1585490