内网穿透可以解决很多开发中的痛点 比如异地开发 网络环境不一致等
市面上解决的办法也很多 如 花生壳 ngrok natapp 前钉钉内网穿透以上除钉钉内网穿透外 其余都属于收费产品
frp搭建内网穿透
- 拥有公网IP服务器一台
下载
- FRP发行包
- 在服务器新建文件夹
mkdir frp && cd frp
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
解压并移动目标文件
tar -zxv frp_0.44.0_linux_amd64.tar.gz
mkdir /usr/local/frp
mv frp_0.44.0_linux_amd64/* /usr/local/frp/
文件说明
frps.ini: 服务端配置文件frps: 服务端软件frpc.ini: 客户端配置文件frpc: 客户端软件
配置systemctl来控制
yum install systemd
vim /usr/lib/systemd/system/frp.service
写入以下内容
[Unit]
# 服务名称,可自定义
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
使用 systemd 命令管理 frps
# 启动frp
systemctl start frp
# 停止frp
systemctl stop frp
# 重启frp
systemctl restart frp
# 查看frp状态
systemctl status frp
# 开机启动
systemctl enable frp
配置FRP
服务端 frps.ini
服务器需要开放端口 7000 80(80端口可能存在冲突可自行更换)
[common] #必须设置
bind_port = 7000 #是自己设定的frp服务端端口
vhost_http_port = 80 #是自己设定的http访问端口
token = 123 #核实身份用,加了更安全
dashboard_port = 37500 #可视化面板
dashboard_user = admin #账号
dashboard_pwd = admin #密码
[ssh] #ssh反向代理(不是必须设置)
listen_port = 6000 是自己设定的ssh访问端口
[web] #http反向代理[]里的内容可以自己设定,但是客户端和服务端必须要对应(如[aaa],[bbb]);
type = http #为服务类型,可以设为http,https
custom_domains = xxx.xxx.com #为要映射的域名,记得域名的A记录要解析到外网主机的IP。
[web2] #同上(可设置多个)
客户端配置 MAC Linux等 frp.inic
同理也需要在客户端下载FRP发行包
[common]
server_addr =x.x.x.x #对应服务器ip
server_port = 7000 #对应服务器frp端口
token = 123
[web]
type = http
local_ip = 127.0.0.1
# 本地服务的端口
local_port = 3334
custom_domains = xxx.xxx.com
#subdomain = 匹配服务端配置的subdomain_host
启动
服务端
systemctl start frp
客户端
./frpc
说明
映射地址为
xxx.xxx.com:自定义端口号(服务端配置文件vhost_http_port端口)