侧边栏壁纸
博主头像
少年听雨的博客 博主等级

天地本宽,而鄙者自隘。

  • 累计撰写 33 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Frp!没有公网IP也可以穿透啦!

少年听雨歌楼上
2024-07-19 / 0 评论 / 0 点赞 / 56 阅读 / 0 字

Frp!没有公网IP也可以穿透啦!

写在前面

有nas的用户总是很苦恼一个事情,在外访问是一件异常困难的事情!

当然你可以选择DDNS-GO代理域名,通过IPV6去访问家里的NAS,可是如果是纯IPV4环境下呢?

要知道很多公共场所的WIFI都只有单一的IPV4网络环境,这个时候是无法访问到NAS的。

那有没有一种方法能够解决这个问题呢?

现在如果你有一台VPS,那这个问题将不再是问题。

那就是FRP!

FRP是一种组网策略,简单来说就是将你的NAS和一台拥有公网IP的设备组成局域网,通过它的公网IP来访问你的NAS。

现在让我们开始吧!

Let’s do it!

正式搭建

本次部署还是会通过docker-compose的方式来安装。

如果你没有安装docker和docker-compose,你可以看看这篇文章。

【启航!】安装Dcoker及Docker-compose!|少年听雨 (shaoniantingyu.top)

部署Frp服务端

创建并打开Frps文件夹

sudo -i  #以管理员运行

mkdir -p /root/data/docker_data/frps

cd /root/data/docker_data/frps

创建docker-compose,并编辑docker-compose文件。

 vim docker-compose.yml
    version: '3.3'
    services:
        frps:
            restart: always
            network_mode: host
            volumes:
                - '.frps.toml:/etc/frp/frps.toml'
            container_name: frps
            image: snowdreamtech/frps

按下Esc,并输入:wq,退出保存。

创建frps.toml    并编辑它。

vim frps.toml
[common]

#frp 监听端口,与客户端绑定端口

bind_port= 5443
kcp_bind_port = 5443

#修改自己用户名

dashboard_user= shaoniantingyu

#修改自己密码

dashboard_pwd= shaoniantingyu123

#启动成功后可通过浏览器访问如http://ip:9527

dashboard_port= 9527

#设置客户端token,对应客户端有页需要配置一定要记住,如果客户端不填写你连不上服务端

token = s1h2a2o7ni1an

注意看文件里的中文提示,并按照自己所需修改它!

按下Esc,并输入:wq,退出保存。

运行docker-compose文件。

docker-compose up -d 

一切顺利的话,输入你的http://你的VPSIP+9527,就可以打开frp服务端web页面,证明frp的服务端我们就已经搞定了。

部署Frpc客户端

套件安装

如果你想简单点,非常建议你使用套件的方式链接,这里以群晖为例。

打开套件中心点击设置

添加矿神源

这里贴一下群晖7.x版本的群晖源

https://spk7.imnks.com/

6.X可以去矿神的网页找找。

PS:感谢矿神大大的矿神源!真的帮助了很多像我这样的小白!!

添加之后搜索frp下载客户端并安装。

打开frp客户端并添加配置

这里详细解释下图中代码的意思,如下:

[ssh]  #设置的名字,你可以修改[]内的名字,比如这里的意思是它转发的是SSh的端口。
type = tcp  #设置的通道形式,不懂没关系,一般不用改,TCP就行。
local_ip = 127.0.0.1  #设置内网IP地址,你可能会说你的Ip应该是192.xxx.x.x呀,但其实docker容器他们也有自己的内网ip,如果你不知道IP,你可以在打开docker,点击网络-bridge查看。
local_port = 22  #需要转发的内网端口,比如这里SSH的内网端口是22,就填22。
remote_port = 6000  #转发后的端口,即以后用你VPS的IP访问的端口。

注意看文件里的中文提示,并按照自己所需修改它!

在了解这些之后,你就可以删除以上的,并添加一段代码链接我们FRP服务端的代码,如下:

# frpc.toml
[common]
server_addr = 10.111.02.01  #你的VPS的IP地址。
server_port = 5443  #Frps服务端的端口。
token = s1h2a2o7ni1an  #链接密钥,这个密钥需要和你配置的VPS上要一致。

注意看文件里的中文提示,并按照自己所需修改它!

这里参考一下我的配置设置,如下:

# frpc.toml
[common]
server_addr = 10.111.02.01
server_port = 5443
token = s1h2a2o7ni1an

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 222
remote_port = 6000 

[qb]
type = tcp
local_ip = 127.0.0.1
local_port = 8092
remote_port = 6001

设置完成之后,点击保存。

一切顺利的话,输入你的http://VPS的IP+9527,打开Proxies并点击TCP就可以看到你刚刚添加的所有信息啦,以后输入VPS的IP+上配置好的端口,就可以在任何有网络的地方访问你的NAS啦!!

Docker-compose安装

使用ssh工具进入链接我们的NAS,并进入管理员权限。

sudo -i

创建并打开Frpc文件夹

mkdir -p /root/data/docker_data/frpc

cd /root/data/docker_data/frpc

创建docker-compose,并编辑docker-compose文件。

    vim docker-compose.yml
    version: '3.3'
    services:
        frpc:
            restart: always
            network_mode: host
            volumes:
                - './frpc.toml:/etc/frp/frpc.toml'
            container_name: frpc
            image: snowdreamtech/frpc

按下Esc,并输入:wq,退出保存。

创建frpc.toml并编辑它

    vim frpc.toml
    # frpc.ini
    [common]
    server_addr = 10.111.02.01  #你的VPS的IP地址。
    server_port = 5443  #Frps服务端的端口。
    token = s1h2a2o7ni1an  #链接密钥,这个密钥需要和你配置的VPS上要一致。
    
    [ssh]  #设置的名字,你可以修改[]内的名字,比如这里的意思是它转发的是SSh的端口。
    type = tcp  #设置的通道形式,不懂没关系,一般不用改,TCP就行。
    local_ip = 127.0.0.1  #设置内网IP地址,你可能会说你的Ip应该是192.xxx.x.x呀,但其实docker容器他们也有自己的内网ip,如果你不知道IP,你可以在打开docker,点击网络-bridge查看。
    local_port = 22  #需要转发的内网端口,比如这里SSH的内网端口是22,就填22。
    remote_port = 6000  #转发后的端口,即以后用你VPS的IP访问的端口。
    
    [qb]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 8092
    remote_port = 6001

注意看文件里的中文提示,并按照自己所需修改它!

按下Esc,并输入:wq,退出保存。

运行docker-compose文件。

docker-compose up -d 

一切顺利的话,输入你的http://你的VPSIP+5443,打开Proxies并点击TCP就可以看到你刚刚添加的所有信息啦,以后输入VPS的IP+上配置好的端口,就可以在任何有网络的地方访问你的NAS啦!!

最后

Frp穿透质量依赖于VPS的带宽、线路。

如果你的带宽非常小,那么可能无法播放媒体影音;如果你的线路很差,那么访问的速度速度会大打折扣。

所有如果遇到以上问题,一定要检查自己的VPS信息。

当然如果你打算购买VPS来穿透的话,就可以参考这两个标准去选购啦!

0

评论区