手把手教小白通过frp内网穿透访问家里的群晖

不废话,直入主题。我家是移动200M宽带。网络设备连接为光猫桥接,openwrt软路由拨号,其他设备都连在软路由下。前几天搞了群晖的ipv6 DDNS,无奈公司网络只有ipv4没有ipv6,无法通过ipv6公网地址访问群晖。我手头又刚好有个nat vps,于是决定尝试一下frp内网穿透。
1,服务器端配置
此处为frp的github网址
服务器端配置很简单,先通过ssh登录vps,然后输入以下命令:

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
mv frp_0.33.0_linux_amd64 frp
cd frp
rm -rf frpc*

然后修改配置文件

vi frps.ini

主要配置frp的通信端口号以及密钥,按i键进入输入模式,修改完成后按Esc键,然后输入:wq回车保存文件。由于我的nat vps只开放了23000以后的端口,因此frp端口号设为23001。最终frps.ini文件如下:

[common]
bind_port = 23001	#通信端口
token = 123456		#密钥

启动服务端服务:

./frps -c ./frps.ini

2,客户端设置
进入openwrt ssh界面。输入如下命令:

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_arm64.tar.gz
tar -zxvf frp_0.33.0_linux_arm64.tar.gz
mv frp_0.33.0_linux_arm64 frp
cd frp
rm -rf frps*

修改配置文件

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.ini

3,内网穿透访问群晖
浏览器输入nat.vps.com:23003访问群晖,nat.vps.com:23004访问jellyfin。

手把手教小白通过frp内网穿透访问家里的群晖_第1张图片
4,设置frp自启动
(1)服务端采用systemctl来控制启动。进入vps的ssh,输入下面命令修改文件。

vi /lib/systemd/system/frps.service

修改后的文件如下:

[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软路由,操作方法不同。
输入以下命令修改文件:

vi /etc/init.d/frpc

修改后的文件如下:

#!/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

你可能感兴趣的:(群晖)