FRP内网穿透,实现OpenVPN远程内网

  • A+
所属分类:Linux基础 Linux技术

需求

开发&运维人员需要远程公司内网,公司内网没有外网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;
    }
}

YaLei

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: