好物优选点击查看详情 京东购买

暂无内容

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

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

wget https:<span class="token operator">/</span><span class="token operator">/</span>github<span class="token punctuation">.</span>com<span class="token operator">/</span>fatedier<span class="token operator">/</span>frp<span class="token operator">/</span>releases<span class="token operator">/</span>download<span class="token operator">/</span>v0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0<span class="token operator">/</span>frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_amd64<span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz tar <span class="token operator">-</span>zxvf frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_amd64<span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz <span class="token function">mv</span> frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_amd64 frp cd frp <span class="token function">rm</span> <span class="token operator">-</span>rf frpc<span class="token operator">*</span>
wget https:<span class="token operator">/</span><span class="token operator">/</span>github<span class="token punctuation">.</span>com<span class="token operator">/</span>fatedier<span class="token operator">/</span>frp<span class="token operator">/</span>releases<span class="token operator">/</span>download<span class="token operator">/</span>v0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0<span class="token operator">/</span>frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_amd64<span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz tar <span class="token operator">-</span>zxvf frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_amd64<span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz <span class="token function">mv</span> frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_amd64 frp cd frp <span class="token function">rm</span> <span class="token operator">-</span>rf frpc<span class="token operator">*</span> 
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<span class="token punctuation">.</span>ini
vi frps<span class="token punctuation">.</span>ini 
vi frps.ini

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

<span class="token namespace">[common]</span> bind_port = 23001 token = 123456
<span class="token namespace">[common]</span> bind_port = 23001  token = 123456  
[common] bind_port = 23001 token = 123456

启动服务端服务:

<span class="token punctuation">.</span><span class="token operator">/</span>frps <span class="token operator">-</span>c <span class="token punctuation">.</span><span class="token operator">/</span>frps<span class="token punctuation">.</span>ini
<span class="token punctuation">.</span><span class="token operator">/</span>frps <span class="token operator">-</span>c <span class="token punctuation">.</span><span class="token operator">/</span>frps<span class="token punctuation">.</span>ini 
./frps -c ./frps.ini

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

wget https:<span class="token operator">/</span><span class="token operator">/</span>github<span class="token punctuation">.</span>com<span class="token operator">/</span>fatedier<span class="token operator">/</span>frp<span class="token operator">/</span>releases<span class="token operator">/</span>download<span class="token operator">/</span>v0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0<span class="token operator">/</span>frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_arm64<span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz tar <span class="token operator">-</span>zxvf frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_arm64<span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz <span class="token function">mv</span> frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_arm64 frp cd frp <span class="token function">rm</span> <span class="token operator">-</span>rf frps<span class="token operator">*</span>
wget https:<span class="token operator">/</span><span class="token operator">/</span>github<span class="token punctuation">.</span>com<span class="token operator">/</span>fatedier<span class="token operator">/</span>frp<span class="token operator">/</span>releases<span class="token operator">/</span>download<span class="token operator">/</span>v0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0<span class="token operator">/</span>frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_arm64<span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz tar <span class="token operator">-</span>zxvf frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_arm64<span class="token punctuation">.</span>tar<span class="token punctuation">.</span>gz <span class="token function">mv</span> frp_0<span class="token punctuation">.</span>33<span class="token punctuation">.</span>0_linux_arm64 frp cd frp <span class="token function">rm</span> <span class="token operator">-</span>rf frps<span class="token operator">*</span> 
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<span class="token punctuation">.</span>ini
vi frps<span class="token punctuation">.</span>ini 
vi frps.ini

这里可以配置多个端口映射服务。我设置了三个,一个是软路由的ssh端口,一个是群晖5000端口,一个是jellyfin的8096端口。我的frpc.ini配置如下:

<span class="token namespace">[common]</span> server_addr = nat<span class="token punctuation">.</span>vps<span class="token punctuation">.</span>com server_port = 23001 token = 123456 <span class="token namespace">[ssh]</span> <span class="token function">type</span> = tcp local_ip = 127<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1 local_port = 22 remote_port = 23002 <span class="token namespace">[DSM]</span> <span class="token function">type</span> = tcp local_ip = 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>1<span class="token punctuation">.</span>2 local_port = 5000 remote_port = 23003 <span class="token namespace">[Jellyfin]</span> <span class="token function">type</span> = tcp local_ip = 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>1<span class="token punctuation">.</span>2 local_port = 8096 remote_port = 23004
<span class="token namespace">[common]</span> server_addr = nat<span class="token punctuation">.</span>vps<span class="token punctuation">.</span>com  server_port = 23001  token = 123456  <span class="token namespace">[ssh]</span> <span class="token function">type</span> = tcp  local_ip = 127<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1  local_port = 22  remote_port = 23002  <span class="token namespace">[DSM]</span> <span class="token function">type</span> = tcp  local_ip = 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>1<span class="token punctuation">.</span>2  local_port = 5000  remote_port = 23003  <span class="token namespace">[Jellyfin]</span> <span class="token function">type</span> = tcp  local_ip = 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>1<span class="token punctuation">.</span>2  local_port = 8096  remote_port = 23004  
[common] server_addr = nat.vps.com server_port = 23001 token = 123456 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 23002 [DSM] type = tcp local_ip = 192.168.1.2 local_port = 5000 remote_port = 23003 [Jellyfin] type = tcp local_ip = 192.168.1.2 local_port = 8096 remote_port = 23004

启动客户端服务:

<span class="token punctuation">.</span><span class="token operator">/</span>frps <span class="token operator">-</span>c <span class="token punctuation">.</span><span class="token operator">/</span>frps<span class="token punctuation">.</span>ini
<span class="token punctuation">.</span><span class="token operator">/</span>frps <span class="token operator">-</span>c <span class="token punctuation">.</span><span class="token operator">/</span>frps<span class="token punctuation">.</span>ini 
./frps -c ./frps.ini

3,内网穿透访问群晖
浏览器输入nat.vps.com:23003访问群晖,nat.vps.com:23004访问jellyfin。
在这里插入图片描述
在这里插入图片描述
4,设置frp自启动
(1)服务端采用systemctl来控制启动。进入vps的ssh,输入下面命令修改文件。

vi <span class="token operator">/</span>lib<span class="token operator">/</span>systemd<span class="token operator">/</span>system<span class="token operator">/</span>frps<span class="token punctuation">.</span>service
vi <span class="token operator">/</span>lib<span class="token operator">/</span>systemd<span class="token operator">/</span>system<span class="token operator">/</span>frps<span class="token punctuation">.</span>service 
vi /lib/systemd/system/frps.service

修改后的文件如下:

<span class="token namespace">[Unit]</span> Description=frp service After=network<span class="token punctuation">.</span>target syslog<span class="token punctuation">.</span>target Wants=network<span class="token punctuation">.</span>target <span class="token namespace">[Service]</span> <span class="token function">Type</span>=simple ExecStart=<span class="token operator">/</span>root<span class="token operator">/</span>frp<span class="token operator">/</span>frps <span class="token operator">-</span>c <span class="token operator">/</span>root<span class="token operator">/</span>frp<span class="token operator">/</span>frps<span class="token punctuation">.</span>ini <span class="token namespace">[Install]</span> WantedBy=multi<span class="token operator">-</span>user<span class="token punctuation">.</span>target
<span class="token namespace">[Unit]</span> Description=frp service After=network<span class="token punctuation">.</span>target syslog<span class="token punctuation">.</span>target Wants=network<span class="token punctuation">.</span>target <span class="token namespace">[Service]</span> <span class="token function">Type</span>=simple ExecStart=<span class="token operator">/</span>root<span class="token operator">/</span>frp<span class="token operator">/</span>frps <span class="token operator">-</span>c <span class="token operator">/</span>root<span class="token operator">/</span>frp<span class="token operator">/</span>frps<span class="token punctuation">.</span>ini  <span class="token namespace">[Install]</span> WantedBy=multi<span class="token operator">-</span>user<span class="token punctuation">.</span>target 
[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 <span class="token function">start</span> frps systemctl enable frps
systemctl <span class="token function">start</span> frps systemctl enable frps 
systemctl start frps systemctl enable frps

如果想停止,输入

systemctl stop frps
systemctl stop frps 
systemctl stop frps

(2)客户端由于是openwrt软路由,操作方法不同。
输入以下命令修改文件:

vi <span class="token operator">/</span>etc<span class="token operator">/</span>init<span class="token punctuation">.</span>d<span class="token operator">/</span>frpc
vi <span class="token operator">/</span>etc<span class="token operator">/</span>init<span class="token punctuation">.</span>d<span class="token operator">/</span>frpc 
vi /etc/init.d/frpc

修改后的文件如下:

<span class="token function">START</span>=90 STOP=90 SERVICE=frpc USE_PROCD=1 PROC=<span class="token string">"/root/frp/frpc -c /root/frp/frpc.ini"</span> start_service<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> procd_open_instance procd_set_param command <span class="token variable">$PROC</span> procd_set_param respawn procd_close_instance <span class="token punctuation">}</span> service_triggers<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> procd_add_reload_trigger <span class="token string">"rpcd"</span> <span class="token punctuation">}</span>
 <span class="token function">START</span>=90 STOP=90 SERVICE=frpc USE_PROCD=1 PROC=<span class="token string">"/root/frp/frpc -c /root/frp/frpc.ini"</span>  start_service<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> procd_open_instance procd_set_param command <span class="token variable">$PROC</span> procd_set_param respawn procd_close_instance <span class="token punctuation">}</span> service_triggers<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> procd_add_reload_trigger <span class="token string">"rpcd"</span> <span class="token punctuation">}</span> 
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 <span class="token operator">/</span>etc<span class="token operator">/</span>init<span class="token punctuation">.</span>d<span class="token operator">/</span>frpc enable <span class="token operator">/</span>etc<span class="token operator">/</span>init<span class="token punctuation">.</span>d<span class="token operator">/</span>frpc <span class="token function">start</span>
chmod 777 frpc <span class="token operator">/</span>etc<span class="token operator">/</span>init<span class="token punctuation">.</span>d<span class="token operator">/</span>frpc enable <span class="token operator">/</span>etc<span class="token operator">/</span>init<span class="token punctuation">.</span>d<span class="token operator">/</span>frpc <span class="token function">start</span> 
chmod 777 frpc /etc/init.d/frpc enable /etc/init.d/frpc start

原文链接:https://blog.csdn.net/falomsc/article/details/106090710

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享