利用frp工具远程ssh连接内网服务器

1.frp

frp是一款反向代理工具,支持tcp、udp协议。与ngrok、nps、holer等相比具有搭建简单,易操作的忧点;与花生壳工具相比,具有不收费、不限流等优点。本文主要记录下利用frp从外网ssh访问内网服务器。

2.准备工作

  • 一台具有公网IP的服务器
  • 内网服务器
  • frp 下载地址

3.操作流程

1.公网服务器和内网服务器上下载frp
wget https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_linux_amd64.tar.gz
2.解压frp
tar -zxvf frp_0.31.1_linux_amd64.tar.gz
3.进入解压目录
cd frp_0.31.1_linux_amd64
4.修改配置文件
#公网服务器上配置文件frps.ini,可以不用修改
# frps.ini
[common]
bind_port = 7000

#内网服务器上修改配置文件frpc.ini
vim frpc.ini
# frpc.ini
[common]
server_addr = x.x.x.x   #x.x.x.x是公网服务器IP
server_port = 7000 		#与服务端bind_port一致

[ssh]
type = tcp 				#连接协议  
local_ip = 127.0.0.1	#内网服务器ip(无需修改)
local_port =22		 	#ssh默认端口号  	
remote_port = 7001		#自定义的访问内部ssh端口号
5.启动frp服务
#公网服务器端
#临时启动
./frps -c ./frps.ini
#后台保持启动
nohup ./frps -c ./frps.ini &

#内网服务器端
#临时启动
./frpc -c ./frpc.ini
#后台保持启动
nohup ./frpc -c ./frpc.ini &
6.通过ssh访问内网服务器
#假设是root用户登录
ssh root@x.x.x.x -p7001
#也可以用putty,xmanager等第三方登录工具登录

4.中途可能出现的问题

1.连接被拒绝

解决办法:关闭内网服务器的防火墙;
或者通过:firewall-cmd --add-port=xxxx/tcp --permanent 开放端口
firewall-cmd --reload 重新加载防火墙即可。

2.需要连接多台内网服务器
#内网服务器上修改配置文件frpc.ini
vim frpc.ini
# frpc.ini
[common]
server_addr = x.x.x.x   #x.x.x.x是公网服务器IP
server_port = 7000 		#与服务端bind_port一致

[ssh] 					#此处名字需要修改一下
type = tcp 				
local_ip = 127.0.0.1	
local_port =22		 	 	
remote_port = 7001		#端口号也要修改一下

5.参考文献

https://github.com/fatedier/frp/blob/master/README_zh.md

https://www.vediotalk.com/archives/505

更多推荐