使用FRP实现多端口内网穿透
FRP介绍
frp工具可以通过有公网IP的的服务器将内网的主机暴露到外网,从而实现通过外网能直接访问到内网主机;frp分为服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。
实操
frp版本
frp_0.36.2_linux_amd64
frp下载地址
解压后目录:
frpc开头的是客户端在内网服务器使用,frps开头是服务端在外网服务器使用,.ini是配置文件
为执行文件添加权限
# 服务器端给执行文件添加权限
cd /opt/frp
sudo chmod 777 frps
# 客户端给执行文件添加权限
cd /opt/frp
sudo chmod 777 frpc
修改服务端配置文件
打开服务器端配置文件
vim ./frps.ini
[common]
bind_port = 10000 # 服务端与客户端通信端口
dashboard_port = 11001 # 后台管理端口
dashboard_user = admin # 后台登录用户名
dashboard_pwd = admin # 后台登录用户密码
vhost_http_port = 11002 # http穿透端口
vhost_https_port = 11003 # https穿透端口
max_pool_count = 50 # 最大连接数
token = 123456789 # 身份验证令牌,frpc要与frps一致
tcp_mux = true
log_file = /opt/frp_0.36.2_linux_amd64/log/frps.log # 日志地址
log_level = info # 日志等级
log_max_days = 30 # 日志保存天数
authentication_timeout = 0 # 服务器与客户端时间相差15min会连接失败,0表示不验证
subdomain_host = test.zjy # 域名
privilege_mode = true
注意:访问的端口一定要开放
启动服务端
nohup ./frps -c ./frps.ini &
修改客户端配置文件
打开客户端配置文件*
vim ./frpc.ini
[common]
server_addr = 47.xxx.xxx.xxx # 公网服务器ip
server_port = 10000 # 公网服务端通信端口,与服务端要匹配
token = 123456789 # 令牌,与公网服务端保持一致
tcp_mux = true
log_file = /opt/frp_0.36.2_linux_amd64/log/frpc.log # 日志目录
log_level = info # 日志等级
log_max_days = 7 # 日志保存天数
authentication_timeout = 0
[ssh] # 添加ssh节点
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 11004 # 指明由公网服务器的7001端口代理
#通过http方式映射端口,注意如果没有子域名,该方式只能映射一个端口出去
[web01] # 添加web节点
type = http
local_ip = 192.168.xxx.xxx
local_port = 8080 # 本地8080端口可以通公网服务器7002端口访问,这里我的8080跑着tomcat
subdomain = web01 # 自定义子域名
#通过tcp方式映射端口,可通过ip映射多个端口,建议使用
[nginx]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 11006
[mysql]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
启动客户端
nohup ./frpc -c ./frpc.ini &