使用 frp 实现内网穿透

内网穿透方案:
现在内网穿透的技术有很多,不过因为内网机器直接主动连外网这种方法比较简单,所以接下来说到的方法基本上都是通过这种方式的。
利用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 的工作原理是:

  1. 服务端监听一个公网端口和一个UDP端口。
  2. 客户端发起连接时,首先会连接服务端的UDP端口,通过它获取一个可连接的服务端公网端口。
  3. 然后客户端使用得到的公网端口与服务端进行通信。
  4. 服务端接收到来自公网端口的流量后,会转发到客户端指定的内网地址。
  5. 这样实现了从外网到内网的访问,完成了内网穿透。
    使用FRP实现内网穿透的基本步骤为:
  6. 在公网服务器上安装FRP服务端。
[common]
# 用于接收 frpc 连接的端口,iptables 需要开放此端口
bind_port = 7000
# 如果需要支持http类型的代理则需要指定一个端口
vhost_http_port = 8000
vhost_https_port = 44300
log_file = ./frps.log
log_level = info
# 为了防止端口被滥用,可以手动指定允许哪些端口被使用
allow_ports = 8000,44300,7000,7400,33060
  1. 启动FRP服务端。
    bash
    frps -c ./frps.ini
  2. 在内网的机器上安装FRP客户端。
    bash
    yum install frp (或者下载编译安装)
  3. 编辑frpc.ini配置文件。
[common]
server_addr = x.x.x.x
server_port = 7000
# 这两个配置用于启用客户端热加载配置文件功能 ./frpc reload
admin_addr = 127.0.0.1
admin_port = 7400
log_file = ./frpc.log
log_level = info

# 通过 ssh 访问内网机器
# ssh -oPort=6000 用户名@x.x.x.x
[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

# 通过 http://www.test.com:8000 访问内网的 web 服务
[web]
type = http
local_ip = 127.0.0.1
local_port = 8000
custom_domains = www.test.com
  1. 启动FRP客户端。
    bash
    frpc -c ./frpc.ini

  2. 在公网使用公网IP:7000就可以访问到内网机器的7000端口。
    FRP是一个方便快捷的内网穿透工具,可以实现远程管理内网设备、测试环境搭建等功能

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值