利用内网穿透连接远程局域网内服务器
动机
实验室的服务器没有公网ip,外网的电脑无法直接访问内网服务器,无法远程办公
内网穿透技术粗解
内网服务器通过某些协议连接一台具有公网ip的服务器,一直监听具有公网ip服务器的某个端口是否有流量访问,本地服务器访问公网IP服务器的该端口. 本地服务器通过公网ip服务器转发流量来达到间接连接内网服务器的目的
步骤
- 在云服务器上下载frp
在FRP的GitHub仓库山下载,或者使用下面的命令
wget https://github.com/fatedier/frp/releases/download/v0.42.0/frp_0.42.0_linux_amd64.tar.gz
解压并进入文件夹,配置frps.ini
[common]
bind_port = 7000 # FRP 服务端监听的端口
启动服务器端frps
./frps -c frps.ini
- 在内网服务器上配置frp
下载frp步骤同上,进入文件夹,配置frpc.ini
[common]
server_addr = x.x.x.x # 公网服务器的 IP 地址
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 通过公网访问此端口即可连接到内网的 SSH 服务
启动客户端frpc
./frpc -c frpc.ini
- 在本地服务器连接内网服务器
ssh 内网服务器id@公网服务器ip -p 6000
接着输入内网服务器密码,就可以连上
- 设置frp开机自启动
- 首先编辑云服务器的**/etc/systemd/system/frps.service**文件,如果没有,创建一个新的frps.service,在该文件中加入下面这段代码
[Unit]
Description=frp Server Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/home/l/Desktop/frp_0.34.0_linux_amd64/frps -c /home/l/Desktop/frp_0.34.0_linux_amd64/frps.ini
[Install]
WantedBy=multi-user.target
注意frps和frps.ini的路径要换成自己的路径
- 启动服务使其开机自启
sudo systemctl enable frps.service
- 立即启动服务
sudo systemctl start frps.service
- 检查服务状态
sudo systemctl status frps.service
- 在内网服务器上也执行类似的步骤,注意把frps和frps.ini换成frpc和frpc.ini