使用frp搭建内网穿透服务

Reading time ~1 minute

1. 什么是frp

frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp,udp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。实际上frp的官方中文文档里面已经有比较详细的教程了,这里只是对具体的环境进行内网穿透,达到在外网可以通过ssh连接到内网的服务器。

2. 准备

  1. 一台有公网IP的VPS主机
  2. 内网服务器(我使用的是树莓派)

3. 开始使用

3.1 服务端(外网主机)

1.根据操作系统可以在官网GitHub的Release页面找到相应的版本下载(我这里是CentOS7的系统,所以选择amd64的版本)。

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

2.解压

tar -zxvf frp_0.14.0_linux_amd64.tar.gz
cd frp_0.14.0_linux_amd64

# 外网主机作为服务端,可以删掉不必要的客户端文件
rm frpc
rm frpc.ini

3.frps.ini为服务端的配置文件,在默认的配置文件里已经有相关的配置了

执行 vim frps.ini配置如下

[common]
bind_port = 7000

[common]为必须的配置,bind_port为绑定frp的服务端端口,如果需要修改,则可以进行修改。

保存配置文件

4.后台启动服务nohup ./frps -c ./frps.ini &

3.2 内网主机(树莓派)

1.我这里使用的是树莓派,所以下载的是arm的版本,如果是其他的操作系统,请下载相应的其它版本。

wget https://github.com/fatedier/frp/releases/download/v0.14.0/frp_0.14.0_linux_arm.tar.gz

2.解压

tar -zxvf frp_0.14.0_linux_arm.tar.gz
cd frp_0.14.0_linux_arm

# 内网的刻画端,就可以删掉不必要的服务端的文件
rm frps
rm frps.ini

3.执行 vim frpc.ini配置如下

[common]
server_addr = x.x.x.x
server_port = 7000

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

[common]中的server_addr填frp服务端的ip(也就是外网主机的IP),server_port填frp服务端的bind_prot

[ssh]中为本地的配置,local_port是本地的ssh端口,remote_port为服务端监听的端口

4.后台启动服务nohup ./frpc -c ./frpc.ini &

4. 设置开机启动

vim /etc/systemd/system/frps.service新建此文件,并写入以下内容

[Unit]
Description=frps daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/home/pi/Developer/frp_0.14.0_linux_arm/frpc -c /home/pi/Developer/frp_0.14.0_linux_arm/frpc.ini
Restart= always
RestartSec=1min
ExecStop=/usr/bin/killall frpc

[Install]
WantedBy=multi-user.target

启动并设为开机自启。

$ sudo systemctl start frps
$ sudo systemctl enable frps

5. 连接

通过 ssh 访问内网机器,假设用户名为 test: ssh -oPort=6000 [email protected]

6. 参考资料

转载请注明出处:
文章地址:使用frp搭建内网穿透服务
文章作者:凌风
原始连接:https://lingfeng.me/blog/linux/raspbian-frp/
许可协议:转载请注明原文链接及作者。

HomeBrew 安装及常用命令

HomeBrew 是 Mac OSX 上的软件包管理工具,能在 Mac 中方便的安装软件或者卸载软件, 使用命令,非常方便。 Continue reading