我有台外网服务器, 我有个内网服务器上有个web应用, 现在希望通过访问外网服务器的443端口就能访问内网服务器的web服务.
client_d能访问server_a即可,server_a处于互联网中(拥有公网IP). server_b能同时访问server_a和server_c
即, CLIENT_D 访问https://129.28.x.x 时, 就相当于访问 https://192.168.1.10
man ssh #查看帮助文档最快
看起来比较麻烦,我都总结如下
ssh -R [HOST_1_IP]:HOST_1_PORT:HOST_2_IP:HOST_2_PORT HOST_1_IP[:HOST_1_PORT] -Nf
解释(参考图一):
-R 关键词
-Nf 后台启用,不打开shell
HOST_1_IP 拥有公网IP的服务器(SERVER_A)
HOST_1_PORT 拥有公网IP的服务器(SERVER_A)的端口
HOST_2_IP 私网服务器的IP(SERVER_C)
HOST_2_PORT 私网服务器的IP(SERVER_C)的端口
编辑 /etc/ssh/sshd_config 修改如下内容
AllowAgentForwarding yes
AllowTcpForwarding yes
ssh -R 8001:192.168.1.10:446 129.28.x.x -Nf #我这里是为了保护IP才写的x.x, 你要根据实际情况来哈.
ssh免密登录:https://cloud.tencent.com/developer/article/1612304
查看端口,确实监听了的(但是仅对于服务器自生可见)
扫描端口:https://cloud.tencent.com/developer/article/1523191
所有我们再做一下tcp转发.用haproxy.
安装haproxy
yum install haproxy
编辑配置文件/etc/haproxy/haproxy.cfg 把它原有的负载配置注释掉(frontend及其之后的行全部注释掉.),并添加如下内容.
frontend https
bind *:443
mode tcp
default_backend app
backend app
mode tcp
balance roundrobin
stick-table type ip size 200k expire 60m
stick on src
server s1 127.0.0.1:8001
启动服务,并查看
访问https://129.28.x.x
总结: ssh本质上是转发的tcp流量, haproxy也是转发的tcp流量, 所以ssl认证是内网服务器和客户端进行的.
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。