frp是一个能进行内网穿透的高性能反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。通过在具有公网IP的节点上部署frp服务端,可以将内网服务穿透到公网。
准备工作
阿里云服务器(Ubuntu18.04)
内网机器(Ubuntu18.04)
通过SSH访问内网机器
-
在阿里云服务器上部署frps,修改frps.ini文件。
[common] bind_port = 7000
-
在需要被访问的内网机器上部署frpc,修改frpc.ini文件。
[common] server_addr = x.x.x.x server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000
local_ip和local_port配置为本地需要暴露到公网的服务地址和端口(ssh服务默认是22端口)。remote_port表示在frp服务端监听的端口,访问此端口的流量将会转发到本地服务对应的端口。
注意事项:
- bind_port和server_port可任意设定,但需保持一致
- server_addr为阿里云服务器公网IP
- remote_port可任意设定,不与server_port相同即可
- 在阿里云实例安全组中开放设定的server_port和remote_port端口号
-
在阿里云服务器启动frps
./frps -c ./frps.ini
-
在内网机器上启动frpc
./frpc -c ./frpc.ini
-
通过ssh访问内网机器
ssh [内网机器系统用户名]@[阿里云公网IP地址] -p [remote_port]
ps:frps和frpc启动可设置后台不挂断运行(借助nohup和&)或将命令写进开机启动项中
通过自定义域名访问内网的web服务
-
在阿里云服务器上部署frps,修改frps.ini文件。
[common] bind_port = 7000 vhost_http_port = 8080
-
在需要被访问的内网机器上部署frpc,修改frpc.ini文件。
[common] server_addr = x.x.x.x server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 [web] type = http local_port = 6006 custom_domains = 域名或IP
注意事项:
- local_port为内网机器web服务监听的端口,根据对应需求更改,例如tensorboard的默认端口为6006。
- custom_domains可为域名或IP地址,例如127.0.0.1。
- 在阿里云实例安全组中开放设定的vhost_http_port端口号
-
在本地浏览器访问域名或IP:local_port即可访问内网机器上[web]local_port端口的服务
设置开机自启动
vim /lib/systemd/system/rc.local.service # 在文件后面添加 [Install] WantedBy=multi-user.target Alias=rc-local.service vim /etc/rc.local /xxx/frpc -c /xxx/frpc.ini & ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/
原文链接:https://www.cnblogs.com/liuzulong/p/13973981.html
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END