参考文档:
https://gofrp.org/docs/setup/(使用方法和示例比较完整)
https://hub.docker.com/r/snowdreamtech/frps
frp ssh配合sshuttle可以真实模拟vpn,直接访问内网vmware ip地址
一、环境准备:
服务端:1台有公网ip并且安装有docker的服务器、域名
客户端:有1台或者多台安装docker的服务器
如果有域名需要添加对应的解析
有防火墙或者安全组需要开放对应端口,frps监听7000,frps dashboard监听7500,client本次示例是6000,根据实际情况修改
二、服务端配置
1>服务端部署
准备配置文件
mkdir /opt/frp/
cat >/opt/frp/frps.ini <<EOF
[common]
bind_port = 7000
#下面是dashboard,不需要可以注释
dashboard_port = 7500
# dashboard 用户名密码是 admin,按需要修改
dashboard_user = admin
dashboard_pwd = admin
EOF
docker run -itd --restart=always --network host -v /opt/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
2>测试访问dashboard浏览器访问frps.onap.vip:7500
三、客户端配置
1>支持ssh
mkdir /opt/frp/
cat >/opt/frp/frpc.ini <<EOF
[common]
#如果过没有域名直接写公网ip也可以
server_addr = frps.onap.vip
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
use_encryption = true
use_compression = true
EOF
docker run -itd --restart=always --network host -v /opt/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc
2>测试访问内网虚拟机
ssh -oPort=6000(内网机器监听端口) frps.onap.vip(公网ip)
3>支自定义域名访问内网服务
1)修改server端添加vhost_http_port = 8080字段,8080是 server端需要监听的端口(安全组或者防火墙需要放行此端口),根据实际修改,修改后重启frps容器
cat /opt/frp/frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
# 以下是监控的配置,不想用就注销即可
dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin
[root@aliyun-bj ~]# cat /opt/frp/frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
# 以下是监控的配置,不想用就注销即可
dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin
docker restart frps
2)客户端部署web服务端口分别是8880和8881不需要在公网服务器内开通这两个的安全组规则
docker run -itd --restart=always --name=base -p8880:80 nginx
docker run -itd --restart=always --name=epel -p8881:80 nginx
3)部署frpc客户端
mkdir /opt/frp/
cat >/opt/frp/frpc.ini <<EOF
[common]
server_addr = frps.onap.vip #没有域名写公网ip也可以
server_port = 7000
[web]
type = http
local_port = 8881
custom_domains = epel.onap.vip #需要此域名添加对frps的解析
[web2]
type = http
local_port = 8880
custom_domains = base.onap.vip #需要此域名添加对frps的解析
EOF
docker run -itd --restart=always --network host -v /opt/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc
4)配置域名解析并分别访问不同域名会返回不同的网站信息
epel.onap.vip:8080
base.onap.vip:8080
二进制安装客户端
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
tar -xf frp_0.52.3_linux_amd64.tar.gz
./frp_0.52.3_linux_amd64/frpc -c ./frpc.ini