Ubuntu Server 20.04 LTS服务器配置frp内网穿透实现SSH远程访问内网
1、需求
现有内网服务器一台,安装的Ubuntu Server 20.04 LTS,需要通过外网随时随地远程SSH连接访问到该内网服务器
2、确定当前操作环境
2.1、弹性云服务器ECS一台,绑定公网ip,系统是CnetOS7或者其他Linux发行版
3、什么是frp
Frp介绍
frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。
frp工作原理
服务端运行,监听一个主端口,等待客户端的连接;
客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
服务端fork新的进程监听客户端指定的端口;
外网用户连接到服务端的IP并使用客户端指定的远程端口,服务端通过和客户端的连接将数据转发到客户端;
客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。
4、服务端
获取对应系统架构的frp安装包
项目地址 https://github.com/fatedier/frp
下载链接 https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
下载
[root@ecs-168228 ~]# wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
解压
[root@ecs-168228 ~]# tar xzvf frp_0.44.0_linux_amd64.tar.gz
修改服务端配置文件
[root@ecs-168228 ~]# vim frp_0.44.0_linux_amd64/frps.ini
frp监听的端口,默认是7000,可以改成其他的
[common]
#bind_port = 7000
bind_port = 7001
启动frp服务
[root@ecs-168228 ~]# yum install screen -y
[root@ecs-168228 ~]# screen -S frps
[root@ecs-168228 ~]# /root/frp_0.44.0_linux_amd64/frps -c /root/frp_0.44.0_linux_amd64/frps.ini
输出" frps started successfully"表示启动成功
键盘按住ctrl+a再按d,将当前会话放到后台运行
其他操作
screen -ls 列出当前所有的session
screen -r yourname 回到yourname这个session
云服务器安全组添加入方向规则
安全组-配置规则-入方向规则-添加规则-TCP协议 7001端口
5、客户端(内网服务器端)
获取对应系统架构的frp安装包
项目地址 https://github.com/fatedier/frp
下载链接 https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
下载
[root@ecs-168228 ~]# wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
解压
[root@ecs-168228 ~]# tar xzvf frp_0.44.0_linux_amd64.tar.gz
修改客户端配置文件
dq@localhost:~$ vim frp_0.44.0_linux_amd64/frpc.ini
内容如下
[common]
server_addr = 公网ip
#server_port = 7000
server_port = 7001
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
#remote_port = 6000
remote_port = 60001
注意"server_addr = "写的是公网服务器frp服务端的弹性公网ip
启动frp服务
dq@localhost:~$ sudo apt-get install screen
dq@localhost:~$ screen -S frpc
dq@localhost:~$ /home/dq/frp_0.44.0_linux_amd64/frpc -c /home/dq/frp_0.44.0_linux_amd64/frpc.ini
输出"[ssh] start proxy success"表示启动成功
键盘按住ctrl+a再按d,将当前会话放到后台运行
云服务器安全组添加入方向规则
安全组-配置规则-入方向规则-添加规则-TCP协议 60001端口
6、SSH连接内网的服务器
ssh 内网服务器用户名@公网服务器ip 内网设置的remote_port端口