frp-一个十分好用的内网穿透工具
frp是一个用于内网穿透的工具,基于Go语言. 与其他内网穿透不同的是,他需要自己提供服务端,也就是说,访问速度与服务器带宽有很大关联 原理图: github下载地址 官网
本地服务器和云主机服务器均需要下载frp,放至任意位置,都可以 其中,包含两个主要的exe文件(或文件):
-
frps - 用于客户端连接 frpc - 用于服务端监听
单连接内网穿透
云主机服务器编辑frps.ini
[common] bind_port = 1234 #frp程序本身需要占用一个端口运行 vhost_http_port = 555 #外网访问的端口,特定的http类型
由于我们打算通过http://10.10.10.12:555/来访问网站,故设置外网访问端口为555,随后运行服务端的frp程序
./frps -c ./frps.ini
本地服务器编辑frpc.ini
本地网站(或tcp)地址为8111 服务端地址:10.10.10.12
[common] server_addr = 10.10.10.12 server_port = 1234 [ssh] #标签内容可更改 type = tcp local_ip = 127.0.0.1 local_port = 8111 remote_port = 555 #这个代表要映射的端口
随后运行本地服务器的frp程序 frpc -c ./frpc.ini #运行代码
另外需要提到的是,如果需要从外网ssh远程连接操作内网的服务器,是需要ssh穿透一下,只需在frpc.ini添加一个type为tcp类型的,地址不变,端口要一个新的 注意 frps.ini中的vhost_http_port并不是必需,只是为了限制服务端允许映射的端口,为了安全,所以限制允许映射的端口.
多个内网穿透
多连接时,需要更改几个地方 实例:映射555,556两个端口 第一是云服务器的frps.ini
[common] bind_port = 7000 vhost_http_port = 555,556 #这里有两个
第二是本地服务器的frpc.ini 注意:这里因为有两个连接,所以应当启动两个frpc
[common] server_addr = 10.10.10.12 server_port = 1234 [ssh1] type = tcp local_ip = 127.0.0.1 local_port = 8111 remote_port = 555 #映射到555
这是第一个,第二个的frpc.ini应当更改frpc.ini中的[ssh1]的标签名和remont_port 如:
[common] server_addr = 10.10.10.12 server_port = 1234 [ssh2] type = tcp local_ip = 127.0.0.1 local_port = 80 remote_port = 556
当然frp提供的功能远不止这些,以上介绍的都是最核心的功能,还提供: