文章目录
  1. 1. frp 工具使用
    1. 1.1. 配置前的准备
    2. 1.2. 服务器
    3. 1.3. 客户端
    4. 1.4. 运行测试
    5. 1.5. 开机自启

frp 工具使用

frp (github地址) 是一种内网穿透工具,之前用过teamviewer,但是对于喜欢用shell的程序猿来说,图形界面不太方便,而且 teamviewer 每次重启电脑后,密码就会变,所以对于处在内网的服务器来说,需要常有人看守,之后了解到,teamviewer 还是有无人看守的模式,电脑重启后,密码不会变,不过经朋友推荐,决定使用 frp,本文最后介绍了开机器自启frp的方式。

配置前的准备

  1. 公网服务器一台,IP地址为 a.b.c.d
  2. 内网服务器一台,IP地址为 192.168.x.y

frp (下载地址),由于本文所用的客户端和服务器都是 64 位的 Ubuntu,(后续版本更新之后,可以根据具体需求,有选择地进行安装),这里使用frp_0.19.1_linux_amd64.tar.gz 来举例,在命令行中输入如下命令,使用 wget 工具下载压缩包,之后再解压。

1
2
3
sudo mkdir /opt/frp
wget https://github.com/fatedier/frp/releases/download/v0.19.1/frp_0.19.1_linux_amd64.tar.gz
sudo tar -zxvf frp_0.19.1_linux_amd64.tar.gz -C /opt/frp

服务器

使用带有公网 IP 的服务器作为 frp 的服务器端。对于解压后的文件中,只会用到文件夹 frps 和文件 frps.ini,其他文件可以考虑删除掉。文件 frps.ini 的配置如下所示:

1
2
[common]
bind_port = 50001
  • bind_port:服务器绑定的端口。

然后启动 frps:

1
./frps -c ./frps.ini

客户端

使用内网的服务器作为frp的客户端。对于解压后的文件中,只会用到文件夹 frpc 和文件 frpc.ini。其他文件可以考虑删除掉。文件 frpc.ini 的配置如下所示:

1
2
3
4
5
6
7
8
9
[common]
server_addr = a.b.c.d
server_port = 50001

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
  • server_addr:服务器的地址。
  • server_port:服务器的 frps.ini 文件中的端口。
  • remote_port:最后 ssh 连接时,-oPort 所使用的端口。

启动 frpc :

1
./frpc -c ./frpc.ini

运行测试

在外网的一台电脑中,在命令行中输入:

1
ssh -oPort=6000 user@a.b.c.d
  • user:登陆内网服务器的用户。

开机自启

本文介绍一种 Ubuntu 开机自启frp的方法,在服务器端先讲命令写成脚本,在 /etc/init.d 目录下,服务器脚本文件为:start-frp-server.sh

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
### BEGIN INIT INFO
# Provides: svnd.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the svnd.sh daemon
# Description: starts svnd.sh using start-stop-daemon
### END INIT INFO
cd /opt/frp/frp_0.19.1_linux_amd64
./frps -c ./frps.ini

需要给该脚本权限:chmod 777 start-frp-server.sh

然后再运行 sudo update-rc.d start-frp-server.sh defaults 90 命令,设置服务器开机自启。

在客户端 /etc/init.d 目录下,脚本文件:start-frp-client.sh

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
### BEGIN INIT INFO
# Provides: svnd.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the svnd.sh daemon
# Description: starts svnd.sh using start-stop-daemon
### END INIT INFO
cd /opt/frp/frp_0.19.1_linux_amd64
./frpc -c ./frpc.ini

需要给该脚本权限:chmod 777 start-frp-client.sh

然后再运行 sudo update-rc.d start-frp-client.sh defaults 90 命令,设置客户端开机自启。

最后,可以尝试重启,再测试外网访问。

1
sudo reboot
文章目录
  1. 1. frp 工具使用
    1. 1.1. 配置前的准备
    2. 1.2. 服务器
    3. 1.3. 客户端
    4. 1.4. 运行测试
    5. 1.5. 开机自启