侧边栏切换

树莓派上安装frp实现内网穿透

最后编辑于: 2019-08-29 11:03  |  分类: linux  |  标签: 树莓派 git   |  浏览数: 5902  |  评论数: 0


设备: raspberry pi 3B E14

环境: Raspbian GNU/Linux 9 Stretch

参考文章:

frp官方github readme:https://github.com/fatedier/frp/blob/master/README_zh.md

https://segmentfault.com/a/1190000017572060

我的目的

我的目的是, 将之前在树莓派上安装的git服务器Gogs系统, 能够在外网也能访问! 首先能实现在外网通过ssh进行code的git操作, 其次能在外网访问Gogs的管理页面.

frp安装

关于安装, 不得不夸一下frp, 太简练了, 做的太好了!

  1. 到其github的release页面, 下载 相应 操作系统及架构 的安装压缩包.

(这里不得不吐槽一下, 从github下载实在是太慢了!!!)

  1. 解压下载的软件包, 将其中的

只要2个文件放在相同目录下, 放在什么位置都行, 当然建立个frp目录存放更好.

至此, 安装完成!

配置 和 运行

配置是通过编辑ini文件实现. 下面分别说明服务器和客户端的配置.

服务器端的配置

我的frps.ini文件内容如下:

[common]
bind_port = 7000
vhost_http_port = 8080
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
token = xxxxxxx

客户端的配置

我的frpc.ini文件内容如下:

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

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

[web]
type = http
local_port = 10080
custom_domains = www.yourdomain.com

所以, 整个SSH端口映射过程为: 服务器6000 <---> 树莓派10022 <---> 树莓派内docker容器22

服务器端 运行

启动运行很简单, 在frps文件所在目录下, 运行如下指令:

./frps -c ./frps.ini

即可!

后台运行

进一步的, 要不要开机自启动运行?

我的服务器端没搞这个, 反正服务器难得启动一次.

搞个后台运行就行了, 为了达到 '终端退出 程序仍然运行的目的', 使用nohup即可, 如下:

nohup ./frps -c ./frps.ini &

客户端 运行

客户端启动运行, 和服务器端类似, 在frpc所在目录下, 运行如下指令:

./frpc -c ./frpc.ini

开机自启动

由于树莓派的掉电不可避免, 还是搞个开机自启动比较好.

编辑/etc/rc.local文件, 在其最后一行exit 0之前, 插入如下2行:

/bin/sleep 60
sudo /home/pi/frp/frpc -c /home/pi/frp/frpc.ini &

我的frpc文件所在位置是 pi用户home目录下的frp目录下, 在/etc/rc.local文件中, 要使用绝对路径, &也必须带上.

另外, 我在frpc运行前, 加了60秒的延时, 不加这个延时自启动就会失败(实验了2次的教训)!

我的目的达成

http穿透

在外网, 可用浏览器访问 服务器域名:8080 来访问我树莓派上Gogs的web监控网页.

8080见服务器端配置中vhost_http_port参数.

外网git

git中如下增加个远程仓库:

git remote add origin ssh://git@x.x.x.x:6000/username/xxx.git

6000见客户端配置中sshremote_port参数. username是你在git服务器上的用户名, xxx.git是你在git服务器上的仓库名.

这样你就可以在外网向树莓派上的这个git服务器 push/pull 代码了!


上一篇: 树莓派上安装docker

下一篇: 树莓派上docker安装git服务器gogs