树莓派使用 frp 实现内网穿透
如果没有公网ip,但又想随时随地都能连接到树莓派,我们可以使用 frp 来实现。
准备条件
我们需要一台 vps,以便做转发的服务端。
服务端配置 - frps
frp 的服务器端,一般名为 frps,配置文件是 frps.ini。可以在 frp 官方页面 获取到最新版本的下载链接(此处以 frp_0.17.0_linux_amd64 为例)。接着使用 ssh 登录 vps 端操作,命令行如下:
wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd64.tar.gz
tar -zxvf frp_0.17.0_linux_amd64.tar.gz
cd frp_0.17.0_linux_amd64
nano frps.ini
配置文件内容如下:
[common]
bind_port = 7000
vhost_http_port = 80
dashboard_port = dashboard_port_number
dashboard_user = dashboard_user_name
dashboard_pwd = dashboard_pwd_value
privilege_token = privilege_token_value
ctrl+o 保存,之后 回车 确认,然后 ctrl+x 退出。
参数说明
- bind_port:绑定的端口,需要与客户端中 server_port 参数保持一致
- vhost_http_port:虚拟主机运行在本机的端口,如果 vps 有服务占用了端口,应当更换
- dashboard_port:frp 后台服务页面的端口,如果设置 8000,便可通过 http://yourip:8000 来访问 frps 的后台页面
- dashboard_user:frp 后台服务页面的管理员用户名
- dashboard_pwd:frp 后台服务页面的管理员密码
- privilege_token:自定义值,必须与客户端中的 privilege_token 保持一致
配置完成之后,便可以通过如下命令启动 frps:
./frps -c ./frps.ini
为了让服务器一直运行 frp 服务,这里还可以将它添加到开机自启脚本中,命令行如下:
sudo nano /etc/rc.local
在 exit 0
前一行,写上命令,其中 <your_frp_path> 为你 frp 存放的目录位置,即:
<your_frp_path>/frps -c <your_frp_path>/frps.ini
ctrl+o 保存,之后 回车 确认,然后 ctrl+x 退出。
客户端配置 - frpc
frp 的客户端,一般名为 frpc,配置文件是 frpc.ini。同样可以在 frp 官方页面 获取到最新版本的下载链接(此处以 frp_0.17.0_linux_arm 为例)。接着使用 ssh 登录 vps 端操作,命令行如下:
wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_arm.tar.gz
tar -zxvf frp_0.17.0_linux_arm.tar.gz
cd frp_0.17.0_linux_arm
nano frpc.ini
配置文件内容如下:
[common]
server_addr = your_server_ip
server_port = 7000
privilege_token = privilege_token_value
login_fail_exit = false
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = remote_port_number
ctrl+o 保存,之后 回车 确认,然后 ctrl+x 退出。
参数说明
- server_addr:服务器端的 ip
- server_port:服务器端的端口,即 bind_port
- privilege_token:同服务器端的 privilege_token 保持一致
- login_fail_exit:失败时自动重连
- remote_port:远程端口,即 ssh 连接树莓派时的端口
配置完成之后,便可以通过如下命令启动 frps:
./frpc -c ./frpc.ini
为了让树莓派一直运行 frp 服务,这里还可以将它添加到开机自启脚本中,命令行如下:
sudo nano /etc/rc.local
在 exit 0
前一行,写上命令,其中 <your_frp_path> 为你 frp 存放的目录位置,即:
<your_frp_path>/frps -c <your_frp_path>/frps.ini
ctrl+o 保存,之后 回车 确认,然后 ctrl+x 退出。
ssh 连接
以上配置完成之后,就可以远程 ssh 连接到树莓派了。命令行如下:
ssh -oPort=<remote_port_number> pi@<your_server_ip>
其中,<remote_port_number> 为树莓派配置中的 remote_port 参数值,<your_server_ip> 为服务器 ip。