群晖 docker 防火墙 上网 群晖 docker frp
不废话,直入主题。我家是移动200M宽带。网络设备连接为光猫桥接,openwrt软路由拨号,其他设备都连在软路由下。前几天搞了群晖的ipv6 DDNS,无奈公司网络只有ipv4没有ipv6,无法通过ipv6公网地址访问群晖。我手头又刚好有个nat vps,于是决定尝试一下frp内网穿透。
1,服务器端配置
此处为frp的github网址 服务器端配置很简单,先通过ssh登录vps,然后输入以下命令:
然后修改配置文件
vi frps.ini主要配置frp的通信端口号以及密钥,按i键进入输入模式,修改完成后按Esc键,然后输入:wq回车保存文件。由于我的nat vps只开放了23000以后的端口,因此frp端口号设为23001。最终frps.ini文件如下:
[common] bind_port = 23001 #通信端口 token = 123456 #密钥启动服务端服务:
./frps -c ./frps.ini2,客户端设置
进入openwrt ssh界面。输入如下命令:
修改配置文件
vi frps.ini这里可以配置多个端口映射服务。我设置了三个,一个是软路由的ssh端口,一个是群晖5000端口,一个是jellyfin的8096端口。我的frpc.ini配置如下:
[common] server_addr = nat.vps.com #服务器域名或者公网ip,这里填的是我nat vps的外网域名 server_port = 23001 #与服务端bind_port一致 token = 123456 #与服务端密钥对应 [ssh] type = tcp #连接协议 local_ip = 127.0.0.1 #表示本地主机 local_port = 22 #内部的ssh端口号 remote_port = 23002 #自定义外部端口 [DSM] type = tcp #连接协议 local_ip = 192.168.1.2 #群晖的内网ip地址 local_port = 5000 #群晖的5000端口 remote_port = 23003 #自定义外部端口 [Jellyfin] type = tcp #连接协议 local_ip = 192.168.1.2 #群晖的内网ip地址 local_port = 8096 #jellyfin的8096端口 remote_port = 23004 #自定义外部端口启动客户端服务:
./frps -c ./frps.ini3,内网穿透访问群晖
浏览器输入nat.vps.com:23003访问群晖,nat.vps.com:23004访问jellyfin。
4,设置frp自启动
(1)服务端采用systemctl来控制启动。进入vps的ssh,输入下面命令修改文件。
修改后的文件如下:
[Unit] Description=frp service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/root/frp/frps -c /root/frp/frps.ini #注意文件路径 [Install] WantedBy=multi-user.target然后输入下面两行命令,第一行用来开启服务,第二行用来设置启动时自动运行。
systemctl start frps systemctl enable frps如果想停止,输入
systemctl stop frps(2)客户端由于是openwrt软路由,操作方法不同。
输入以下命令修改文件:
修改后的文件如下:
#!/bin/sh /etc/rc.common START=90 STOP=90 SERVICE=frpc USE_PROCD=1 PROC="/root/frp/frpc -c /root/frp/frpc.ini" #注意文件路径 start_service() { procd_open_instance procd_set_param command $PROC procd_set_param respawn procd_close_instance } service_triggers() { procd_add_reload_trigger "rpcd" }最后输入命令开启服务以及设置自启动。
chmod 777 frpc /etc/init.d/frpc enable /etc/init.d/frpc start