- A+
需求
开发&运维人员需要远程公司内网,公司内网没有外网IP,无法直接通过vpn远程。借助frp工具,实现tcp内网穿透,穿透工具还可以选择Ngrok等其他产品。
OpenVPN参考之前在阿里云部署的文档:
https://www.liuyalei.top/1549.html
简介
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
项目地址:
https://github.com/fatedier/frp/blob/master/README_zh.md
环境准备
准备一台阿里云公网ECS,用于部署frp服务端。
frps.ini 服务端,放到具有公网 IP 的机器上。
frpc.ini 客户端,放到处于内网环境的机器上。
服务端配置
[root@xiujianshen-web02 frp]# cat /usr/local/frp/frps.ini [common] type = https bind_port = 4443 bind_addr = 0.0.0.0 auto_token = xjs
启动服务
screen -dmS frp /usr/local/frp/frps -c /usr/local/frp/frps.ini
客户端配置
[root@jenkins ~]# cat /usr/local/frp/frpc.ini [common] server_addr = 47.99.1.1 server_port = 4443 [jenkins] type = tcp local_ip = 192.168.0.10 local_port = 80 remote_port = 27 [openvpn] type = tcp local_ip = 192.168.0.11 local_port = 1194 remote_port = 1194
local_ip 局域网地址
local_port 局域网端口
remote_port 代理端口
screen -dmS frp /usr/local/frp/frpc -c /usr/local/frp/frpc.ini
验证
客户端启动后,可以在服务端机器上查看端口已经放开,telnet测试湍口连通性,如果是穿透http,可以穿透Nginx 80端口,反向代理到后端web server,反向代理配置如下:
[root@jenkins conf.d]# vim jenkins.test.com.conf server { listen 80; server_name jenkins.test.com; location / { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://192.168.0.111:8080; } }