使用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日志变化。并且可以在浏览器中访问代理地址测试不同情况。

frp
最后修改于:2025年07月10日 17:06

添加新评论