应用目的:远程管理或在外网访问内网机器上的服务
这里我们是使用云服务器+FRP实现内网穿透,达到远程连接服务器的目的
准备工作
云服务器
这里我们租用的是腾讯云的服务器,类似于下图的这种,配置选择可以自行选择,我的选择配置如下图所示。
在申请成功后,系统会发送站内信告知你云服务器的账户密码以及IP地址,包括公网IP和内网IP。这些信息对接下来的配置操作都极为重要。
为了叙述方便,我们假设:
默认账户:abc
初始密码:123
公网IP:111.111.111.11
内网IP:222.22.2.22
内网穿透工具-FRP
接下来,我们就需要利用FRP实现内网穿透。具体操作可分为服务器端和客户端
下载FRP
服务器端和客户端都需要下载FRP,以Ubuntu系统为例:
下载步骤:
wget /fatedier/frp/releases/download/v0.15.1/frp_0.15.1_linux_amd64.tar.gztar xzvf frp_0.15.1_linux_amd64.tar.gz
更多平台的软件包下载地址
服务器端
服务器端简单来说就是你所租用的服务器
具体步骤:
1.登录云服务器
2.下载FRP
3.解压后的文件夹内有服务端配置文件frps.ini,接着配置 frps.ini
$ cat frps.ini[common]bind_port = 7000 默认配置中监听的是 7000 端口,可根据自己实际情况修改。
4.启动 FRP 服务端
命令行输入:./frps -c ./frps.ini
,出现下图则表示开启成功
客户端
客户端简单来说就是你需要远程连接的服务器
具体步骤:
1.登录你的远程服务器,这里我是使用teamviewer远程连接直接操控服务器的
2.下载FRP
3.解压后的文件夹内有客户端配置文件 frpc.ini,接着配置 frpc.ini
$ vim frpc.ini[common]# server_addr 为 FRP 服务端的公网 IPserver_addr = 111.111.111.11# server_port 为 FRP 服务端监听的端口server_port = 7000
4.启动 FRP 客户端
命令行输入:./frpc -c ./frpc.ini
,出现下图则说明配置成功
通过 TCP 访问内网机器
这里以访问 SSH 服务为例, 修改 FRP 客户端配置文件 frpc.ini 文件并增加如下内容:
$ cat frpc.ini[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000
接着启动 FRP 客户端
./frpc -c ./frpc.ini
出现下图则配置成功
说明:
这里local_port默认为22是连接你的主机,你也可以设置为其他的端口,例如你的主机上的某一个容器的端口
remote_port的设置只要注意不要重复即可,例如你的主机的remote_port = 6000,那么你的某一个端口或其他的主机的remote_port 就不能为6000,此外需要特别注意【ssh】不能重名。
连接指令
命令行输入:
ssh 主机用户名@云服务器公网IP地址 -p remote_port
例如:
ssh whale@111.111.111.11 -p 6000
然后输入密码即可连接,这里的密码指的是你远程服务器的密码,不是云服务器的密码
后台运行
搭建好连接后,如果想要frp在后台运行可以执行:
服务端:
nohup ./frps -c frps.ini >/dev/null 2>&1 &
客户端:
nohup ./frpc -c ./frpc.ini >/dev/null 2>&1 &
想要终止进程的话,
先找到进程:
ps -aux|grep frp| grep -v grep
然后再杀掉进程即可:
kill -9 进程号