使用frp搭建内网穿透

起因

前段时间花了点钱买了台星际蜗牛当NAS使,内网用起来还是挺爽的,内网千兆传输速度还是很快的。

也是因为上面存了点东西,想在外面访问NAS的时候却没办法了,就想搞个内网穿透,这样在外面也能访问到我在局域网内的NAS了。

因为我这里网络环境比较特殊,路由器外面还有一台天翼网关,没办法获取到公网的IP,也就意味着不能使用DDNS,就只能另辟蹊径了。

于是我便找到了frp,使用frp的前提是你有一台拥有公网IP的服务器,我阿里云的学生机还有挺长时间到期的。
(下文文件路径有所修改,图片未替换,请以文字为准)

搭建内网穿透

为了方便,下文将我的服务器称为Server,局域网的NAS就称为NAS

首先我们需要在这两台设备上都下载frp:https://github.com/fatedier/frp/releases
根据自己的硬件下载对应的文件。

我的两台设备都是centos 64位的,所以我下载的是 frp_0.33.0_linux_amd64.tar.gz

下载文件

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

下载完成后解压,执行命令

tar -xzvf frp_0.33.0_linux_amd64.tar.gz

进入解压后的文件夹

cd frp_0.33.0_linux_amd64

使用frp搭建内网穿透_第1张图片
接下来的操作在Server和NAS上有所区别,请注意哦。

Server(服务端)需要的文件是frps,NAS(客户端)需要的文件是frpc。

配置Server(服务端)

只需要保留frpsfrps.ini文件即可,为了方便操作,将其移动到指定位置,移动文件操作非必须。

mkdir /etc/frp
mv frps /usr/bin/frp/
mv frps.ini /etc/frp/
cd /etc/frp/

然后编辑配置文件

vi /etc/frp/frps.ini

编辑配置文件

# frps.ini
[common]
#监听端口,客户端通过此端口连接服务器
bind_port = 7000
#token口令 可选
token=token

启动服务端

frps -c /etc/frp/frps.ini

服务端启动成功

配置NAS(客户端)

同样将需要的文件拷贝至指定目录

mkdir /etc/frp/
mv frpc /usr/bin/frp/
mv frpc.ini /etc/frp/
cd /etc/frp/
vi frpc.ini

编辑配置文件

重点来啦!
frpc配置按照端口划分,每一个端口对应每一节配置。
假设我需要通过服务器远程连接到我的NAS,需要将NAS的本地22端口映射到服务器上,此时需要指定一个服务器上的端口,这里设置为6000

# frpc.ini
[common]
server_addr=你的服务器公网IP
#server_port与服务器上设置一致
server_port=7000
# 如设置了token 此处也需要配置
token=token

[ssh]
# 本地端口
local_port=22
# 服务器端口 如不设置默认与本地端口一致
remote_port=6000

如此一来ssh的配置就完成了。
启动客户端连接服务器

.frpc -c /etc/frp/frpc.ini

启动成功并成功连接到服务器
此时尝试在我的windows上进行连接.

打开cmd

ssh -oPort=6000 root@服务器IP

使用frp搭建内网穿透_第2张图片
此处的-oPort即是frpc.ini中配置的remote_port

其他配置同理,如,我在本地的nas中搭建了aria2,开启了rpc,我希望能通过浏览器插件ariaNg连接到NAS上的aria2,添加配置

[jsonp]
local_port=6800
remote_port=6801

再次启动即可

然后通过插件连接到服务器的6801端口

使用frp搭建内网穿透_第3张图片
使用frp搭建内网穿透_第4张图片
已经成功连接。

最后提醒一下,不要忘记开启服务器安全组的端口!

开机自启动

这里推荐使用systemctl控制启动,这个方法非常方便
服务端为例,找到之前下载frp解压出来的文件夹,进入其中的systemd目录

使用frp搭建内网穿透_第5张图片

将frps.service拷贝至 /lib/systemd/system/下并编辑
服务端拷贝frps.service,客户端拷贝frpc.service

cp frps.service /lib/systemd/system/
cd /lib/systemd/system/
vi frps.service

如果ExecStart的路径无法对应上就需要修改

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

[Install]
WantedBy=multi-user.target

然后使用systemctl启动服务

systemctl start frps.service
systemctl status frps.service

使用frp搭建内网穿透_第6张图片
设置开机自启动

systemctl enable frps.serivce

客户端同理,就不再赘述。

你可能感兴趣的:(杂七杂八)