基于frp以及一台公网服务器实现ssh远程连接内网服务器

发布于:2023-02-13 ⋅ 阅读:(637) ⋅ 点赞:(0)

设备准备

一台可以使用的公网的服务器、一台可以访问web的内网 X X X的计算机,一台可以访问web的不属于内网 X X X的计算机。

文件准备

下载对应文件 传送门

linux下进行解压的命令:

tar -zxvf  frp_0.44.0_linux_amd64.tar.gz

客户端是指要被ssh访问的计算机。
服务端是指公网IP的计算机。
在这里插入图片描述

运行文件配置

# frps.ini
[common]
bind_port = 7000 # 公网服务器开启的端口
# frpc.ini
[common]
server_addr = # 公网服务器的IP地址
server_port = 7000 # 公网服务器开启的端口

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 这个端口是用于代理的端口

文件运行

服务端运行

./frps -c ./frps.ini

客户端运行

./frpc -c ./frpc.ini

非内网计算机ssh连接

ssh -oPort=6000 test@x.x.x.x #x.x.x.x是公网服务器的IP

开启端口

查看是否连接成功,如果没有成功,要检查一下公网服务器的防火墙的端口是否打开。
6000和7000的端口都要打开。

netstat  -ntulp # 查询已开放的端口 
netstat  -ntulp | grep 端口号 # 可以具体查看某一个端口号 
firewall-cmd --query-port=6000/tcp  # 查询指定端口是否已开,提示 yes,表示开启;no表示未开启。
firewall-cmd --add-port=6000/tcp --permanent # 添加指定需要开放的端口 
firewall-cmd --add-port=7000/tcp --permanent # 添加指定需要开放的端口 
firewall-cmd --reload # 重载入添加的端口 
firewall-cmd --query-port=6000/tcp # 查询指定端口是否开启成功 
firewall-cmd --permanent --remove-port=6000/tcp # 移除指定端口 
firewall-cmd --permanent --remove-port=7000/tcp # 移除指定端口 

备注:运行公网服务器为ubuntu20.04,指令集是amd64的,版本不对应会出现core dump之类的运行报错。

本文含有隐藏内容,请 开通VIP 后查看