内网穿透方案:
现在内网穿透的技术有很多,不过因为内网机器直接主动连外网这种方法比较简单,所以接下来说到的方法基本上都是通过这种方式的。
利用VPN创建隧道
VPN的原理是通过由主机主动向VPN服务器连接隧道并通过虚拟一个路由器组成VLAN的一种技术,通过这个介绍也能很明显看出来这是由主机主动发出的吧,通过这种方式即使不在内网中也可以让内网的电脑连自己的VPN来连接内网的电脑,以此再继续连到内网电脑所能连接的网络里面。
这种方法算是比较简单,而且很安全的方式,不过可惜中国的好多ISP都屏蔽VPN,用这种方式不是很稳当。
SSH隧道
SSH这个软件很强大,有的功能也很多。既然VPN被屏蔽了那22端口总不至于屏蔽吧,总不能把运维的饭都给抢了吧?通过SSH隧道的方式使用起来也很简单,
在公网服务器上打开sshd的GatewayPorts功能,内网设备通过执行类似于ssh -fN -R 10022:localhost:22 远程用户@远程主机这样的命令启动隧道,然后其他电脑就可以通过这个公网服务器连这个内网设备了。
这种方法很不错,但是还是有一个问题,那就是需要租服务器(刚才的VPN同样需要),所以可以还有更好的方案。
某些服务商提供的frp
frp从名字上就能听出来它是一种代理吧,这种东西目前有很多服务商都有提供,
比如SakuraFrp,还有花生壳啥的,当然如果手头有服务器也可以自己搭。这种的和前面几种不一样的是它反代出来的服务可以让其他用户直接用,很方便,不过有一个限制,就是一台服务器最多只能反代出64551个服务(不考虑tcp和udp的区别),正常人都是够用了。
端口映射
这是最好的方案,毕竟这样做可以保证不限速,而且也不需要外网服务器,但是路由器的管理权限很难搞,这确实没办法。
推荐frp https://github.com/fatedier/frp
FRP(Forward Reverse Proxy)是一个实现内网穿透的开源工具。它由一个客户端和一个服务端组成。
FRP 的工作原理是:
- 服务端监听一个公网端口和一个UDP端口。
- 客户端发起连接时,首先会连接服务端的UDP端口,通过它获取一个可连接的服务端公网端口。
- 然后客户端使用得到的公网端口与服务端进行通信。
- 服务端接收到来自公网端口的流量后,会转发到客户端指定的内网地址。
- 这样实现了从外网到内网的访问,完成了内网穿透。
使用FRP实现内网穿透的基本步骤为: - 在公网服务器上安装FRP服务端。
[common] bind_port = 7000 vhost_http_port = 8000 vhost_https_port = 44300 log_file = ./frps.log log_level = info allow_ports = 8000,44300,7000,7400,33060
- 启动FRP服务端。
bash
frps -c ./frps.ini - 在内网的机器上安装FRP客户端。
bash
yum install frp (或者下载编译安装) - 编辑frpc.ini配置文件。
[common] server_addr = x.x.x.x server_port = 7000 admin_addr = 127.0.0.1 admin_port = 7400 log_file = ./frpc.log log_level = info [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 [range:tcp] type = tcp local_ip = 127.0.0.1 local_port = 3306 remote_port = 33060 [web] type = http local_ip = 127.0.0.1 local_port = 8000 custom_domains = www.test.com
-
启动FRP客户端。
bash
frpc -c ./frpc.ini -
在公网使用公网IP:7000就可以访问到内网机器的7000端口。
FRP是一个方便快捷的内网穿透工具,可以实现远程管理内网设备、测试环境搭建等功能
原文链接:https://blog.csdn.net/weixin_54104864/article/details/130871375