ssh 代理详细解释

ssh -qTfnN -D 7070 ape@192.168.1.35

ssh -CfNg -R 1521:127.0.0.1:80 ape@192.168.1.35

参考地址:

http://hi.baidu.com/edeed/item/e393cf34a76eb8f3e7bb7ab8

http://hi.baidu.com/step_1/blog/item/271f831bfbc198f1ae5133b7.html

http://hi.baidu.com/deyu260/blog/item/3be433093e5779a12eddd418.html

http://hi.baidu.com/laowuuser/blog/item/317647c7992a65de38db4946.html

参考文档:

1.

SSH: Port Forwarding
1.正向隧道-隧道监听本地port,为普通活动提供安全连接
ssh -qTfnN -L port:host:hostport -l user remote_ip
2.反向隧道----隧道监听远程port,突破防火墙提供服务
ssh -qTfnN -R port:host:hostport -l user remote_ip
3.socks代理
SSH -qTfnN -D port remotehost(用证书验证就直接主机名,没用的还要加上用户名密码)
-q Quiet mode. 安静模式,忽略一切对话和错误提示。
-T Disable pseudo-tty allocation. 不占用 shell 了。
-f Requests ssh to go to background just before command execution. 后台运行,并推荐加上 -n 参数。
-n Redirects stdin from /dev/null (actually, prevents reading from stdin). -f 推荐的,不加这条参数应该也行。
-N Do not execute a remote command. 不执行远程命令,专为端口转发度身打造。

2.

ssh实现转发, 只要用到以下两条命令:

# ssh -CfNg -L 6300:127.0.0.1:1521 oracle@172.16.1.164
# ssh -CfNg -R 1521:127.0.0.1:6300 oracle@172.16.1.164

不论是做跳板, 还是加密隧道, 还是加密其他的网络连接也都是这两条命令. 视具体情况而定, 有时只要用到其中一条, 有时两条都要用到.

命令解释:

1) -CfNg

C表示压缩数据传输
f表示后台用户验证,这个选项很有用,没有shell的不可登陆账号也能使用.
N表示不执行脚本或命令
g表示允许远程主机连接转发端口

2) -L 本地转发

# ssh -CfNg -L 6300:127.0.0.1:1521 oracle@172.16.1.164

本机(运行这条命令的主机)打开6300端口, 通过加密隧道映射到远程主机172.16.1.164的1521端口(使用远程主机oracle用户). 在本机上用netstat -an|grep 6300可看到. 简单说,本机的6300端口就是远程主机172.16.1.164的1521端口.

3) -R 远程转发

# ssh -CfNg -R 1521:127.0.0.1:6300 oracle@172.16.1.164

作用同上, 只是在远程主机172.16.1.164上打开1521端口, 来映射本机的6300端口.

4) 实用例子

有A,B,C 3台服务器, A,C有公网IP, B是某IDC的服务器无公网IP. A通过B连接C的80端口(A<=>B<=>C), 那么在B上执行如下命令即可:

$ ssh -CfNg -L 6300:127.0.0.1:80 userc@C
$ ssh -CfNg -R 80:127.0.0.1:6300 usera@A

服务器A和服务器C之间, 利用跳板服务器B建立了加密隧道. 在A上连接127.0.0.1:80, 就等同C上的80端口. 需要注意的是, 服务器B上的6300端口的数据没有加密, 可被监听, 例:

# tcpdump -s 0-i lo port 6300

3.

http://bianbian.org/technology/264.html

里有一些好用的网址,介绍ssh及其代理穿透防火墙的

http://www.inet.no/dante/

Dante -- Proxy communication solution

ssh 是有端口转发功能的。(转)
http://doc.linuxpk.com/80817.html

ssh的三个强大的端口转发命令:

QUOTE:
ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -D listen_port user@Tunnel_Host
-f Fork into background after authentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-p port Connect to this port. Server must be on the same port.
被登录的ssd服务器的sshd服务端口。

-L port:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-R port:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-D port
指定一个本地机器 “动态的'’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

-C Enable compression.
压缩数据传输。

-N Do not execute a shell or command.
不执行脚本或命令,通常与-f连用。

-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接

Linux命令行下SSH端口转发设定笔记(转)

原文:http://be-evil.org/post-167.html

在Windows下面我们可以很方便的使用putty等ssh工具来实现将服务器上的端口映射到本机端口来安全管理服务器上的软件或者服务 那么我们换到在Liunx下我们应该怎么做呢?

ssh -L 本地端口:服务器地址:服务器端口 用户名@服务器地址 -N

参数详解:

-L 端口映射参数 本地端口 - 这个任意即可,只要本机没有其他的程序占用这个端口就行

服务器地址 - 你需要映射的服务器地址(名称/ip)

服务器端口 - 远程的服务器端口

-N - 不使用Shell窗口,纯做转发的时候用,如果你在映射完成后继续在服务器上输入命令,去掉这个参数即可

例子A:我们想远程管理服务器上的MySQL,那么使用下面命令

ssh -L 3306:127.0.0.1:3306 user@emlog-vps -N
运行这个命令之后,ssh将会自动将服务器的3306映射到本机的3306端口,我们就可以使用任意MySQL客户端连接 localhost:3306即可访问到服务器上的MySQL了。

例子B:一次同时映射多个端口

ssh -L 8888:www.host.com:80-L 110:mail.host.com:110 \ 25:mail.host.com:25 user@host -N
这个命令将自动把服务器的80,110,25端口映射到本机的8888,110和25端口 以上命令在ubuntu 9.10 上测试通过...

关于ssh端口转发的深入实例[转]

http://blog.myhnet.cn/2009/01/08/deepin-instances-of-ssh-port-forwarding/

首先,认识下这三个非常强大的命令:

ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -D listen_port user@Tunnel_Host
相关参数的解释:
-f Fork into background after authentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-L port:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-R port:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-D port
指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

-C Enable compression.
压缩数据传输。

-N Do not execute a shell or command.
不执行脚本或命令,通常与-f连用。

-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。注:这个参数我在实践中似乎始终不起作用

实例说明:
一台服务器提供ftp服务,因为ftp传输是明文密码,如果不做ssh端口之前,我们可以通过tcpdump命令很容易的捕捉到明文信息。所以我们要对21端口进行转发:

ftp-server# ssh -CNfg -R 2121:localhost:21 root@100.0.0.50
然后登录到100.0.0.50机器,我们可以通过netstat -an|grep :2121查看端口已经侦听

100.0.0.50# ftp localhost 2121
就可以登录到ftp-server了,而且tcpdump无法捕获到有效的信息。
2121端口任意选择,只要是机器上没有占用的端口就行

来一个稍微复杂一点的,做网关的例子:
假如内网有一台提供ftp(linux,port is2121,称为A机器)的机器,通过网关服务器(linux,port is8888,称为B机器)进去,现在外网有一台C机器需要访问网关服务器的某个端口(port is21)来访问内网的ftp服务器。大家可以看到,其实这就像是一个基于ssh的防火墙程序,好,下面我们来具体操作:
1、login A 机器

# ssh -CNfg -R 8888:localhost:2121 root@B机器IP
这样我们就在B机器上开了一个8888->2121的端口转换,但是由于8888端口只能侦听在localhost主机上,因此,虽然我们已经可以在B机器上使用

# ftp localhost 8888
来访问真正的ftp服务器,但仍然无法提供给外网的机器访问

2、login B机器

# ssh -CNfg -L 21:localhost:8888 root@localhost
这样做,是做本地机器上的21->8888端口转换,可以侦听在任何地址上的请求。
2(1)。
如果C机器也是一台linux机器,那也可以这样设置:

# ssh -CNfg -R 21:localhost:8888 root@C机器IP
3。使用C机器,
可以是linux下的ftp命令,也可以是windows下的客户端软件都可以访问B机器的21端口来连接后台真正的ftp服务器(真正的端口是2121)
如果是按照2(1)中的设置,则访问的地址为本机IP。

ssh 代理详细解释相关推荐

  1. UIApplication sharedApplication详细解释-IOS

    UIApplication sharedApplication详细解释-IOS 分类: iOS开发2012-07-27 10:25 10287人阅读 评论(2) 收藏 举报 applicationui ...

  2. Spring中IOC和AOP的详细解释(转)

    原文链接:Spring中IOC和AOP的详细解释 我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂. 主要用到的设计模式有工厂 ...

  3. linux 的ss命令,Linux中的ss命令的详细解释

    linxu下的ss其实Socket Statistics的缩写.下面由学习啦小编为大家整理了linux的ss命令的详细解释的相关知识,希望对大家有帮助! 一.Linux中的ssh命令的详细解释 1.命 ...

  4. 新手教程:建立网站的全套流程与详细解释

    新手教程:建立网站的全套流程与详细解释 你要是 Baidu 这个话题,得到的结果八成都是广告--他们都会告诉你,"嘿,我(或某公司)这里可以建网站,傻瓜式的哟,快来投奔我吧!" 新 ...

  5. Git 针对 GitLab Github 配置 HTTP HTTPS SSH 代理

    文章目录 配置 git 代理 配置 git 的 http https 代理 配置 git 的 ssh 代理 配置 git 代理 配置 git 的 http https 代理 Linux 和 Windo ...

  6. jsch设置代理_SSH代理(ssh-agent)及SSH代理转发(agent-forwarding)功能介绍

    之前有详细介绍SSH密钥方式登录,SSH端口转发 ,以及X11转发,可点击如下原链接查看 结合下面拓扑图模拟演示并介绍SSH代理(ssh-agent)及SSH代理转发(agent-forwarding ...

  7. Python精讲Numpy基础,大牛笔记详细解释

    https://www.toutiao.com/a6664936105076326920/ 总认为Numpy是渣渣,直到深入接触以后才知道功能这么强大.堪比Matlab啊.果然是人生苦短,我用Pyth ...

  8. MongoDB:详细解释mongodb的高级操作,聚合和游标

    前几天总结了mongodb的安装入门.详细解释了增删改查的基本操作,今天再来总结下mongodb更高级的操作,聚合和游标. 一.聚合,mongodb的聚合操作一般分为四种情景,分别是:count.di ...

  9. PySide2 基础入门-创建实例窗口(详细解释)

    PySide2 基础入门-创建实例窗口(详细解释) python 3.7 / Pyside2 (如果使用pyQt5,将Pyside2 直接替换PyQt5即可)首先我们在Qt Designer中画好界面 ...

最新文章

  1. 小图拼接大图MATLAB实现
  2. Spark RDD中cache和persist的区别
  3. 配置DNS辅助服务器:DNS系列之四
  4. [剑指offer][JAVA]面试题第[31]题[栈的压入、弹出序列][栈]
  5. 计算机论文搜索技巧【一】
  6. ICCV2021 workshop 多视角残缺点云的补全与配准
  7. 以后台服务的形式启动nodejs应用
  8. hdu 2046 骨牌铺方格
  9. RedisUtil工具类
  10. 电脑系统哪个好用_火绒杀毒,真有那么好用吗?
  11. Windows PowerShell | 错误: 740 需要提升权限才能运行 DISM
  12. 基于WinPcap的网络流量在线分析系统的设计与实现
  13. 计算机关机又自动重启,电脑关机后自动重启是什么原因?Win10关机变重启原因及解决方法...
  14. 阿甘正传中的人生哲理
  15. python编程价格_Python基础练习实例46(查询价格)
  16. 年薪40-80K *14 | 网境科技SLAM算法工程师、算法科学家招聘
  17. web系统多语言切换
  18. 【SQL】神奇的DUAL表
  19. 关于Notion导出PDF的建议
  20. 支付宝生活缴费商业项目标准版-赖国荣-专题视频课程

热门文章

  1. 华擎Deskmini 310黑苹果efi引导文件
  2. 湖南工业大学计算机学院调剂,2020年湖南工业大学硕士研究生调剂信息公告
  3. .Net Core 微服务使用Polly实现熔断、降级、超时、重试
  4. 手机技巧:微信发布 8.0.35 安卓内测版体验和下载
  5. kafka consumer 总结及配置详解学习
  6. 硬件设计基础----二极管
  7. abap开发注释快捷键_SAP ABAP 开发快捷键
  8. P1028 数的计算
  9. 电脑有哪些常用快捷键?70个电脑常用的快捷键大全
  10. JVM -- 运行期优化;JIT(九)