使用frp配置web服务内网穿透代理
需求:使用frp实现对内网服务器上web服务的内网穿透。
将内网地址http://127.0.0.1:8080服务通过内网穿透实现外网可以访问。
环境准备:
一台有固定外网IP的阿里云服务器
frps服务端:阿里云服务器
frpc客户端:内网服务器
frp下载地址:
https://github.com/fatedier/frp/releases
分别下载Windows和Linux版本:
frp_0.63.0_windows_amd64.zip
frp_0.63.0_linux_amd64.tar.gz
frps服务端
frps.toml配置:
[common]
bindPort = 7000
vhost_http_port=6001
启动命令:
./frps -c frps.toml
frpc客户端
frpc.toml配置:
[common]
server_addr = 39.105.xxx.xx
server_port = 7000
[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
custom_domains = "test.xxx.com"
其中:
39.105.xxx.xx为阿里云外网IP
test.xxx.com为指向39.105.xxx.xx的域名
frpc客户端启动命令:
frpc.exe -c frpc.toml
启动后,在浏览器中访问:http://test.xxx.com:6001代理地址,如果代理地址访问结果和内网地址http://127.0.0.1:8080一致,则说明frp代理配置成功。
然后,我们继续优化,将frps和frpc启动注册成系统服务,实现开机启动及后台运行。
frps注册服务(linux):
使用systemd 服务实现开机启动并后台运行;创建一个服务文件/etc/systemd/system/frps.service,内容如下:
[Unit]
Description=FRP Server Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
ExecStart=/path/to/frps -c /path/to/frps.toml
[Install]
WantedBy=multi-user.target
请确保替换 /path/to/frps 和 /path/to/frps.toml 为实际的路径。
接下来启用并启动服务:
-- 启用frps服务
sudo systemctl enable frps
-- 启动frps服务
sudo systemctl start frps
-- 查看服务状态
sudo systemctl status frps
frpc注册服务(windows):
使用winsw注册Windows服务,实现开机启动并且后台运行。winsw.xml配置如下:
<service>
<id>frpc</id>
<name>frpc</name>
<description>This service runs the frpc service.</description>
<logpath>%BASE%\logs</logpath>
<log mode="rotate"></log>
<executable>frpc.exe</executable>
<startarguments>-c frpc.toml</startarguments>
<depend></depend>
</service>
winsw注册服务命令:
winsw.exe install winsw.xml
注册完毕后,可在服务中启动/关闭frpc服务,观察frps服务端client login和client exit日志变化。并且可以在浏览器中访问代理地址测试不同情况。