ssh反向代理(服务器与客户端组网使用)
名字不重要 发布于 2024-5-15 17:50 543 次阅读 linux
1、建立客户端到服务器的反向代理,实现服务器上访问客户端
方式一:不通过远程工具实现
找到ssh.exe位置,cd过去后通过执行下面命令建立反向代理(一次只能建一个端口的反向代理,断开后反向代理会关闭)
#完整的格式
ssh -R HostServer:PortServer:HostCustom:PortCustom user@HostServer -p sshport
#HostServer可以省略,当sshport为默认的22端口时,也可以省略-p sshport
ssh -R PortServer:HostCustom:PortCustom user@HostServer
#示例
ssh -R 192.168.56.101:8000:127.0.0.1:8000 root@192.168.56.101
方式二:通过远程工具实现(建议这种方式,简单方便)
注意:中间部分的参数是远程到服务器的参数,跟端口转发无关,相当于方式一中的user@HostServer -p sshport部分
里面127.0.0.1可以换成客户端能访问到的其他IP(比如虚拟机)
2、服务器参数修改
/etc/sysctl.conf中添加配置net.ipv4.ip_forward = 1
保存后执行sysctl -p让配置生效
/etc/ssh/sshd_config文件中GatewayPorts参数值设置为yes(默认是no且配置项是注释的,取消注释,修改值为yes)
修改完后执行systemctl restart sshd让配置生效
改之前:
改之后(如果是改之前已经建立的连接,需要断开后重新连接):
说明:如果不修改这个参数,反向代理后,在服务器上只能通过127.0.0.1来访问,无法使用服务器的IP地址来访问(为了让第3步可以实现)
3、添加一个跟客户端ip相同的回环地址(可以在服务器上直接用客户端的地址访问,假装网络是通的)
ifconfig lo:1 192.168.90.35 netmask 255.255.255.255 192.168.90.35