内容简介:环境把 client 的某个端口流量通过 ssh 转发到 server, ssh client 端口会连到 server 上可以搭建简单的代理服务器
ssh 搭建代理服务器
环境
- A 192.168.111.2
- B 192.168.111.3
- C 192.168.111.4
端口转发分类
- 本地端口转发
- 远程端口转发
本地端口转发
把 client 的某个端口流量通过 ssh 转发到 server, ssh client 端口会连到 server 上
# 格式 # ssh -L <local port>:<remote host>:<remote port> <SSH hostname> ssh -L 2222:localhost:22 192.168.111.3 # 只有本机可连接 ssh -gL 2222:localhost:22 192.168.111.3 # 其他主机连接 ssh 127.0.0.1 -p 2222 <等同于> ssh 192.168.111.3 -p 22
远程端口转发
# 命令格式如下: # ssh -R <remote port>:<local host>:<local port> <SSH hostname> root@client $ ssh -R 2222:localhost:22 192.168.111.3 # 在 Server 上连接本地的 2222 端口等同于连接 Client 的 22 端口 root@server $ ssh 127.0.0.1 -p 2222 <等同于> root@server $ ssh 192.168.111.2 -p 22 # 远程端口转发不能通过设置 -g 选项使外部主机连接 Server 的 2222 端口
动态端口转发
可以搭建简单的代理服务器
# 根据数据包的目的IP和目的端口实现动态转发的,工作机制类似于代理 # 命令格式如下: # ssh -D <local port> <SSH hostname> root@client $ ssh -D 1080 192.168.111.3 root@client $ ssh -gD 1080 192.168.111.3 # 发往 Client 1080 端口的数据包将通过 SSH 连接发往 Server ,并在 Server 上重新发起请求
端口转发实践
防火墙穿透
A 通过 B 去连接 C的 mysql
# 在 A 上执行 root@A ssh -gL 3306:192.168.111.4:3306 192.168.111.3 -p 22
内网穿透
需要做两次端口转发:一次远程端口转发把公网的 2221(因为绑定在 lo 上,所以只能本机访问) 端口转发到家庭主机的 22 端口,一次本地端口转发把公网的 2222 端口转发到 2221 端口
root@home $ ssh -R 2221:localhost:22 35.194.*.* # 家庭主机操作 root@public $ ssh -gL 2222:localhost:2221 localhost # 公网 IP 操作 user@anywhere $ ssh -D 1080 35.194.*.* -p 2222 # 任意主机操作 # 如果想访问家庭网络中其他主机上的资源的话,只要指定这个代理即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java语言程序设计(基础篇 原书第10版)
[美]粱勇(Y.Daniel Liang) / 戴开宇 / 机械工业出版社 / 2015-7 / 85.00元
《Java语言程序设计(基础篇 原书第10版)》是Java语言的经典教材,中文版分为基础篇和进阶篇,主要介绍程序设计基础、面向对象编程、GUI程序设计、数据结构和算法、高级Java程序设计等内容。本书以示例讲解解决问题的技巧,提供大量的程序清单,每章配有大量复习题和编程练习题,帮助读者掌握编程技术,并应用所学技术解决实际应用开发中遇到的问题。您手中的这本是其中的基础篇,主要介绍了基本程序设计、语法......一起来看看 《Java语言程序设计(基础篇 原书第10版)》 这本书的介绍吧!