文章前言
早之前玩树莓派喜欢用路由器进行端口映射来内网穿透,但是现在公网IP越来越稀罕而且域名直接绑定IP还得使用DDNS,而且还有被抓的风险,所以FRP这种方式更安全更方便一点。
这篇文章主要记录一下如何在OpenWrt 下利用Luci-app-frpc 来进行内网穿透,能让你在外网访问家里局域网内的web或者其他服务。
远程服务器的FRP服务端我就直接用Docker来运行,这样非常简单,只需要简单几条命令就可以,如果你OpenWrt里没有安装Luci-app-frpc 也可以用Docker来做。
配置服务器
首先你得需要一台有公网IP的服务器VPS,国内如果需要配合域名来访问那必须得备案了才行。尽量还是选择境外、速度快的。
Frp的原理就是通过远程服务器转发的形式来进行通信映射,所以流量都需要走公网的服务器流量,这个要注意下。
服务器安装Docker-ce
# 1、登录root,获取在线安装脚本(这里直接使用root账号,简化流程)
curl -fsSL https://get.docker.com -o get-docker.sh
# 2、执行安装脚本
sh get-docker.sh --mirror AzureChinaCloud
或者
sh get-docker.sh --mirror Aliyun
# 3、修改Docker持久化目录(可选/推荐)
test -d /var/lib/docker && \
mv /var/lib/docker /var/lib/docker_backup && \
mkdir -p /data/docker && \
ln -sf /data/docker /var/lib/docker
# 4、开启镜像加速(可选/推荐)
cat >/etc/docker/daemon.json<<EOF
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com"
]
}
EOF
# 5、启动Docker并加入开机启动项
systemctl daemon-reload
systemctl enable docker
systemctl start docker
# 6、验证是否安装成功(有Docker信息输出即为成功):
docker info
编辑Frps.ini
创建配置文件目录:
mkdir /conf
这个目录你可以自定义,不过要在Docker目录映射的时候一定不要弄错,最好使简单点。
编辑frps.ini 配置文件:
# vi /conf/frps.ini
[common]
bind_port = 7700
token = UoWb43ZJiPoaWE
vhost_http_port = 8080
vhost_https_port = 8443
dashboard_port = 7500
dashboard_user = root
dashboard_pwd = UoWb43ZJiPoaWE
tcp_mux = true
max_pool_count = 10
- bind_port 是绑定的端口,可以自定义
- token 是跟frpc通讯验证密钥
- vhost_http_port 为http访问的端口,如果你这台服务器只用来做端口映射完全可以改成80
- vhost_https_port 是https的端口同上。
- dashboard_port 是控制frp控制面板的端口可以自定义。
- dashboard_user 这个是管理面板的用户名
- dashboard_pwd 管理面板的密码
拉取Frps的Docker 镜像
[root@server ~]# docker pull openwrtclub/frps
Using default tag: latest
latest: Pulling from openwrtclub/frps
df20fa9351a1: Already exists
8cccd7670c29: Pull complete
add8de623fc6: Pull complete
34a254ce0ccd: Pull complete
bac9fbe9c21e: Pull complete
Digest: sha256:609b7f8be8295c0f6e556d3229ce8a4a5752618b64de1a19cead09a781323ffb
Status: Downloaded newer image for openwrtclub/frps:latest
docker.io/openwrtclub/frps:latest
运行frp的服务端
这里说一下docker容器内外端口通讯有两种模式,一种是host 本机网络模式,另外一种是主机和容器内的端口进行映射。推荐用host模式,省的端口映射麻烦。
docker run -d --name frps --restart=always --net=host -v /conf/frps.ini:/conf/frps.ini openwrtclub/frps
为了验证是否成功,你需要访问一下VPS服务器的IP:dashboard_port
:
http://173.86.88.88:7500
如果成功运行后会弹出登录认证,用上面frps.ini文件中的用户名和密码登录。
后台如下图:
服务端到这里就操作完成了。
配置luci-app-frpc
接下来就应该配置OpenWrt里的Frpc客户端了,一定要按照上面配置frps.ini文件中的一样填写,如下图:
配置文成后点击保存并应用,就会看到Frp状态哪里显示为绿色“Frp服务正常运行”。
解析域名
这里解析一个域名到服务器的IP地址上,这个其实应该早点操作,每个NS服务器不一样所以生效的时间也不一样,今早添加。
添加端口映射
这里为了演示我把OpenWrt的后台管理地址映射到外网,
- 域名:panel.openwrt.club
- 内网IP:192.168.1.233
- HTTP端口:内网80、外网8080
在OpenWrt的Frpc点击添加,如下图进行填写:
点击保存应用,添加好后服务器列表里会显示如下:
打开服务器上的frps面板会看到已经映射成功:
如果显示online 说明成功了,现在访问:http://panel.openwrt.club
就能看到OpenWrt的后台登录地址了。
举一反三,按照这个套路继续添加你想要的端口和协议即可,不过要分清楚,比如WEB需要HTTP、HTTPS,SSH这种是TCP协议,这个终极区分即可。
你还可以根据上一篇文章安装Cloud Torrent ,把他也映射到外网进行管理种子下载。
感謝分享