注意:!!!!! 树莓派+阿里云+frp实现内网穿透的方案 仅适用于有云服务器的情况,没有云服务器的请尝试使用花生壳,cpolar等实现内网穿透。

前言:

服务器端:阿里云等服务器 -> 我的系统为阿里云debian云服务器

客户端:树莓派->我的为raspberry pi 3B+ 树莓派64位系统(rasbian11 64bit )

1、服务器端搭建

下载frp

#看一下最新版本Releases · fatedier/frp (github.com)
#服务器端下载的是x86,客户端如果是树莓派就是arm/arm64,如果是pc就是x86,这里用的是树莓派即arm64,
#因此服务器下载x86版本,客户端下载arm64版本

wget
https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_386.tar.gz

解压

mkdir frp
tar -zxvf frp_0.49.0_linux_386.tar.gz -C frp

进入目录

cd frp/frp_0.49.0_linux_386/

修改配置文件

sudo vim  frps.ini

 [common]
 bind_port = 7000
 vhost_http_port = 9000
 auto_token = 123456

 启动

 网上说的是frps -c frps.ini 启动,但这样必须每次都开着,为了以后更好的管理和控制,我们使用systemd去管理,即用systemctl指令去作为一个服务管理

 步骤

sudo cp frps /usr/local/bin/frps
sudo mkdir /etc/frp/  
sudo cp frps.ini /etc/frp/frps.ini 
sudo vim /etc/systemd/system/frps.service

填写模板

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini

[Install]
WantedBy = multi-user.target

然后就可以使用systemd指令控制了

开启服务&&开机启动

# 启动frp
systemctl start frps
# 开启启动frp
systemctl enable frps

服务器端到此就搭建完毕了

2、客户端搭建

下载frp

#敲黑板!!!!看清楚,这个是arm64,服务器端是x86
wget https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_arm64.tar.gz

 解压

mkdir frp
tar -zxvf frp_0.49.0_linux_arm64.tar.gz -C frp

进入目录

cd frp/frp_0.49.0_linux_arm64/

修改配置文件

#看清楚了,服务器端是frps,客户端是frpc
sudo vim frpc.ini

 [common]
 tls_enable = true
 server_addr = 你自己的云服务器id
 server_port = 7000

 #这里往下就是你要内网穿透的端口了,所以看清了,它的原理是把你的服务端口映射到云服务的某个服务端口,你要加那个服务,自己就在下面添加,这里以ssh和vnc为例

 #为了和云服务器区分,最好都存在的服务不要用本来的名字,如ssh,这样的话,可能两边的ssh有冲突,所以我们改个ssh1等等都行,只要不叫ssh都行

 [ssh1]
 type = tcp
 local_ip = 你的树莓派ip
 local_port = 22    #这里就是树莓派即客户端ssh的端口
 remote_port = 6000 #这是你打算在云服务上映射的端口,那当然是没用过的,用过的不行用之前可以用netstat -ntlp看看是不是端口被占用,6000是举例,当然你也可以直接用

 [VNC1]
 type = tcp
 local_ip = 你的树莓派ip
 local_port = 5900  #这里就是树莓派即客户端vnc的端口
 remote_port = 6900 #这是你打算在云服务上映射的端口,那当然是没用过的,用过的不行用之前可以用netstat -ntlp看看是不是端口被占用,6900是举例,当然你也可以直接用

 启动

 网上说的是frpc -c frpc.ini 启动,但这样必须每次都开着,为了以后更好的管理和控制,我们使用systemd去管理,即用systemctl指令去作为一个服务管理

 步骤

#还是那句话,看清楚这里都是frpc,不是frps
sudo
cp frpc /usr/local/bin/frpc sudo mkdir /etc/frp/ sudo cp frpc.ini /etc/frp/frpc.ini sudo vim /etc/systemd/system/frpc.service

 启动&&开机启动

# 启动frp
sudo systemctl start frpc
# 开启启动frp
sudo systemctl enable frpc

3、开放端口

至此就搭建完成了,接下来我们需要开放服务器,注意是服务器!不是树莓派!端口,因为用到了云服务安全级别比较高,我们除了系统放开外,还需要再阿里云等网页去设置

系统端口放开

#你用到哪个就开放哪个,以后添加新的端口映射记得要来这里放开端口
iptables -A INPUT -p tcp --dport 6000 -j ACCEPT 
iptables -A INPUT -p tcp --dport 6900 -j ACCEPT

#这样还不行重启会失效,因此,我们需要将这个开放指令保存
#我们需要借助安装iptables-persistent 保存规则持续生效

sudo apt-get install iptables-persistent
netfilter-persistent save
netfilter-persistent reload
#设置完成后指定端口就会持续放行了,记得每次放开端口都要这么保存一下

阿里云端放开

  这个我就不多说了,相信用过云服务的都知道怎么开放,用到哪个开放哪个, 

 一切完成之后就完成了搭建

4、测试

可以拿一个ssh软件进行 测试 

 能看到登入信息证明搭建成功

 END

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/feiyunhongge/p/17464922.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!