使用FRP进行内网穿透

我本是个有公网IP的人,奈何最近NTT把我的443端口给封禁了,我便不能再(优雅的)配合DDNS使用自带的这个动态公网IP了。

没办法,只得开了一台距离比较近的VPS,在上面设置了一个FRP服务器。在此记录一下设置的过程,以备不时之需。

获取FRP

FRP是一个开源的反向代理项目:https://github.com/fatedier/frp 可以从Release页面下载需要的二进制文件:https://github.com/fatedier/frp/releases

OpenWRT

如果你的路由器够强劲,可以试试OpenWRT版本的:

  • https://openwrt.org/packages/pkgdata/frpc

  • https://openwrt.org/packages/pkgdata/luci-app-frpc

其中,luci-app-frpc是在路由器的配置页面上直接配置frpc,但是我试过,其实未必有直接写配置文件来的便捷。

直接:

opkg update
opkg install frpc
opkg install luci-app-frpc

即可。

虽然说一般不会有人要在路由器上设置FRPS,但是还是写一下:

  • https://openwrt.org/packages/pkgdata/frps

  • https://openwrt.org/packages/pkgdata/luci-app-frps

服务器配置

首先下载frp,然后解压:tar -xzvf frp_0.52.3_linux_arm64.tar.gz

随后将文件复制frps/usr/bin(或者任何在PATH里的目录): cp frp_0.52.3_linux_arm64/frps /usr/bin/

准备以下文件:

/etc/frp/frps.toml

/etc/systemd/system/frps.service

之后

即可启动服务,服务一经启动,即不需要进一步的配置,其余的配置都在客户端。

还有一点需要确认的是防火墙,每个系统的防火墙不一定一样,这里是Ubuntu的服务器,所以用ufw配置。

需要开放7000端口和你之后想要对外放出的端口(这里是443):

客户端配置

同样是下载软件后复制frpc/usr/bin(或者任何在PATH里的目录): cp frp_0.52.3_linux_arm64/frpc /usr/bin/

准备配置文件和服务文件:

/etc/frp/frpc.toml

/etc/systemd/system/frpc.service

之后启动服务即可

关于OpenWRT

如果显示frp Client - NOT RUNNING,需要到 http://192.168.1.1/cgi-bin/luci/admin/system/startup 里面启动(Enable&Start)frpc服务。

以及,如果目标机器和跑FRPC的机器不是同一台(如路由器跑frpc,树莓派跑服务)情况下,建议设置固定的IP地址。

最后更新于

这有帮助吗?