在OpenWrt上安装frp实现内网穿透
· 3 min read
使用OpenWrt路由器作为frp客户端
Windows 的杀毒软件会误报frp,所以我们可以使用OpenWrt路由器作为frp的客户端,这样就不会有杀毒软件的问题了。 OpenWrt是一个适用于嵌入式设备的Linux发行版,可以运行在路由器、网关、嵌入式设备等设备上。
为了便于部署,我们可以使用Docker容器来运行frp客户端,这样就不需要在路由器上安装额外的软件。
在OpenWrt扩展存储
OpenWrt默认情况下只有很少的存储空间,无法安装Docker。我们可以通过扩展存储来增加存储空间。这个存储空间就是TF卡上没有利用的空间。
- 先查看路由器的存储空间:系统->磁盘管理

- 找到有空间的磁盘,点击修改,创建新的分区

- 分区格式采用ext4,然后选择格式化

- 选择 系统->挂载点,添加新的挂载点

- 启用此挂载点,选对应的磁盘,作为docker分区使用,保存/应用

- 最后重启路由器

在OpenWrt上安装Docker
OpenWrt 的包管理器是 opkg,可以使用 opkg 安装 Docker。其功能类似于 Ubuntu 的 apt-get。
- 首先更新 opkg 的软件包列表,这个必须要做,否则无法找到 Docker 的软件包。
opkg update
- 安装 Docker
# 安装 Docker 客户端
opkg install docker
# 安装 Docker 管理界面
opkg install luci-app-dockerman
# 安装 Docker 服务
opkg install dockerd
# 安装 Docker Compose
opkg install docker-compose
- 启动 Docker 服务
从 OpenWrt 的 Web 界面启动 Docker 服务,或者使用命令行启动 Docker 服务。
/etc/init.d/dockerd start
- 创建frp客户端的配置文件
创建一个目录,比如 /opt/container/frp,然后在这个目录下创建一个 frpc.toml 文件,内容如下:
# frpc.toml
serverAddr = "new.baca.org.cn"
serverPort = 7000
auth.token = "eUH4K344Q7jY3Q8h1bRP3NkYBBVvHs7BmC5i5XA"
[[proxies]]
name = "office"
type = "xtcp"
localIP = "192.168.188.251"
secretKey="99ioHhY0oz7gqQ1isAq"
localPort = 3389
其中 localIP 和 localPort 是要映射的本地服务的地址和端口,这里是将本地的3389端口映射到互联网上。
- 编辑 docker compose 配置文件
创建一个目录,比如 /opt/container,然后在这个目录下创建一个 docker-compose.yml 文件,内容如下:
services:
frpc:
image: snowdreamtech/frpc
container_name: frpc
volumes:
- /opt/container/frp/frpc.toml:/etc/frp/frpc.toml
restart: always
network_mode: "host"
- 使用 docker-compose 启动 frp 客户端
在 /opt/container 目录下执行以下命令:
docker-compose up -d
这样就可以在 OpenWrt 路由器上运行 frp 客户端了,实现内网穿透。
总结
通过上面的步骤,我们可以使用 frp 实现内网穿透,将本地服务暴露到互联网上。通过在 OpenWrt 路由器上运行 frp 客户端,我们可以避免 Windows 杀毒软件的误报问题,同时也可以利用路由器的稳定性和网络性能,实现更好的内网穿透效果。
