因云服务资源有限,迁移服务到内网物理服务器并虚拟化多台机器部署不同服务,但仅有一个对外ip,本文记录下基于frp的内网SSH及HTTP映射。
一、frp安装
- 进入github项目空间 项目地址:github.com/fatedier/fr…
- 下载相应版本
-
使用
arch命令查看服务器架构 -
下载文件包
wget https://github.com/fatedier/frp/releases/download/${release}/${package}
- 解压文件包
tar -zxvf ${package}
cp -r ${package} frp
二、服务端配置
服务端可以被公网访问。
我们实验室只有8001-8030共计三十个端口,因此配置如下:
vi frps.ini
[common]
bind_port = 8005
dashboard_port = 7500
token = 12345678
vhost_http_port = 8004
vhost_https_port = 10443
dashboard_user = admin
dashboard_pwd = admin
大家可以根据团队实际情况配置。
- bind_port表示客户端和服务端连接的端口,客户端配置需要保持一致
- dashboard_port是服务端仪表盘的端口
- token是用于客户端跟服务端连接的口令
- vhost_http_port是服务端的http服务端口
- vhost_https_port是服务端的https服务端口
三、客户端配置
客户端通过服务端被公网访问。
vi frpc.ini
[common]
server_addr = xxx # 公网ip
server_port = 8005 # 与服务端保持一致
token = 12345678
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 8006
[web]
type = http
local_port = 8004
custom_domains = xxx # 公网ip或域名
四、服务验证
我们先打开dashboard查看配置是否生效:
SSH
在非客户端且具备访问公网能力的机器执行:
ssh -p 8006 root@${服务端公网ip}
成功连接。
HTTP
我们在客户端运行一个测试web服务:
java -Dserver.port=8004 -jar springboot-web-demo-1.0-SNAPSHOT.jar
调用http://服务端公网ip:8004/hello?name=WinsonWu:
正常返回。