frp内⽹穿透--------------------阿⾥云linux+本地linux虚拟机实现
为了实现外部主机能访问局域⽹服务器(私有ip),我选择了⽤frp来做内⽹穿透,当然还可以⽤ngrok、花⽣壳等等。
frp
frp 是⼀个可⽤于内⽹穿透的⾼性能的反向代理应⽤,⽀持 tcp, udp, http, https 协议
内⽹穿透讲解:
先租⽤⼀个阿⾥云vps,配置好frp服务端,再在局域⽹搭建⼀个web服务器,并且web服务器配置好frp客户端,做到外⽹主机访问vps的8080端⼝时等于访问局域⽹的web服务器。
准备⼯作:
vps⼀台,公⽹ip
公⽹域名:
局域⽹服务器:172.25.1.137
2、可以在主机上wget对应frp压缩包,也可以下载到本地⽤ftp⼯具(winscp)上传到云服务器
3、 tar -zxvf 解压对应压缩包
4、进⼊解压后的⽬录 frp_0.22.0_linux_amd64
5、编辑配置⽂件 vim frps.ini
[common]
frp服务端与客户端连接端⼝,frps和frpc必须⼀致
bind_port = 7000
服务端外部提供的端⼝
vhost_http_port = 8080
仪表盘端⼝,只有设置了才能使⽤仪表盘(即后台)
dashboard_port = 7500
仪表盘访问的⽤户名密码,如果不设置,则默认都是 admin
dashboard_user = admin
dashboard_pwd = admin
~
保存退出,
6、启动服务端
./frps -c frps.ini 后台启动为./frps -c frps.ini &
表⽰启动完成
frpc客户端配置(centos 7)
前提:先搭建好web服务器,我这⾥使⽤时Apache,也可以是nginx,这⾥⾃⼰搭建
上传frp压缩包,并解压
编辑vim frpc.ini 配置⽂件
[common]
服务端公⽹ip地址
server_addr =
与服务端通信端⼝
server_port = 7000
[web]
type = http
本地Apache服务端⼝
虚拟机vim命令local_port = 80
公⽹ip绑定的域名
custom_domains =
启动服务
./frpc -c ./frpc.ini
⽤浏览器登录访问内部服务器,成功访问
配置多个内⽹主机
错误的多客户端配置
使⽤⼀台阿⾥云的公⽹服务器,我们可以配置很多内⽹机器的 frp 内⽹穿透,公⽹服务器上只需要按照上述的配置⼀次即可,但是内⽹机器的配置稍有不同,如果使⽤了⼀样的配置则后添加的内⽹机器是⽆法连接上公⽹服务器的。这⾥假设另⼀台内⽹机器2的 frpc.ini 配置如下,来说明会遇到的问题:
$ vi frpc.ini
[common]
server_addr = x <==这⾥还是按照上⾯的假设,公⽹服务器的ip为x
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001 <==remote_port设置为另⼀个值
两个内⽹主机的配置除了 remote_port 不⼀样之外,都是⼀样的。但是在内⽹机器2上运⾏ frpc 后,公⽹服务器的 nohup.out 中会记录⼀下的错误:[W] [:332] [280d36891a6ae0c7] new proxy [ssh] error: proxy name [ssh] is already in use
1
后来发现,frp 中是通过 [ssh] 这个名字来区分不同客户端的,所以不同的客户端要配置成不同的名字。
正确的多客户端配置
内⽹机器1和内⽹机器2的配置应该区分如下:
内⽹机器1:
[ssh] <;不同点
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 <;不同点
内⽹机器2:
[ssh1] <;不同点
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001 <;不同点
在两个内⽹机器上分别运⾏ frpc 客户端程序后,⼀般就可以通过以下的⽅法 ssh 登录:
内⽹机器1:
$ ssh -p 6000 user_name1@server_addr
内⽹机器2:
$ ssh -p 6001 user_name2@server_addr
以上参数中,server_addr是公⽹服务器的公⽹ip;user_name1、user_name2 分别是内⽹机器1、2的⽤户名,之后分别使⽤登录密码就可以登录。
注意事项:
1、云服务器8080端⼝必须未占⽤
2、局域⽹web服务器(ftp客户端)能上⽹
3、阿⾥云服务器要开放上⾯⽤到的端⼝8080、7000、7500,在添加安全组规则放⾏这些端⼝
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论