几个端口转发的例子

标签: 网络和安全 | 发表时间:2015-04-09 16:51 | 作者:Litrin
出处:http://www.litrin.net

很多情况下,我们往往需要通过对某个端口进行转发(端口映射)实现某些特殊功能,比如堡垒机和负载均衡什么的。在这里我就稍微总结了几种最常用的端口转发方式供大家参考。

Linux防火墙模式——反向NAT

这种模式大多是要求用户很快速的实现将外网的某个端口eth0 1.1.1.1:80的流量引流到内网的一台主机10.0.0.1:8080中,本机内网IP eth1 10.0.0.2这种模式性能是毋庸置疑的,但相对来说稳定性和可控性不佳,往往用于临时过渡

sysctl net.ipv4.ip_forward=1 #这个配置非常重要!
iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.1
iptables -t nat -A POSTROUTING -s 10.0.0.1/255.0.0.0 -d 10.0.0.1 -p tcp -m tcp --dport 8080 -j SNAT --to-source 10.0.0.2

Haproxy

这个方式其实根防火墙模式很相似,不过经过HAproxy的封装,增加了很多方便的配置,你可以很方便的配置出简单的负载均衡规则,状态监控,日志方式甚至于配置心跳等,适合作为中等以上规模的负载均衡集群。

具体的配置大家可以参考官方文档或者直接修改安装包内的默认配置文件,非常浅显易懂!

SSH tunnel

不得不说,SSH是一个很强大的工具。它完全可以应付简单的端口转发和链路加密。适用于低流量的两台互信主机之间的信息加密,它还有个特点是它支持带宽压缩,可以节约部分带宽资源。

配置方式可以 参考这里

netcat

工具几乎所有的linux都默认安装了netcat工具(部分Linux的版本用的是OpenBSD-nc,与netcat略有不同,尽管名字一致),这可是一个强大的tcp/ip工具哦。感觉这样的操作有点黑科技的意思了,建议做调试的时候可以用用。

这个例子是把本地的81号端口的访问转移到80号

mknod tunnel p #创建一个临时的管道文件tunnel
netcat -l -p 81 0 < tunnel | netcat -l -p 80 | tee tunnel

socat

其实这个命令根上一个非常类似,从名字上就看得出这个是针对于linux下socket文件的netcat。多数Linux都可以通过默认源来安装。由于是直接建立本地的socket文件,就不需要像上例那样创建管道文件了。

把所有本地的80号转移到10.0.0.1的8080上

socat -d -d -l TCP4-LISTEN:80,reuseaddr,fork,su=nobody TCP4:10.0.0.1:8080

Windows 的netsh

说到底我们用的最多的还是windows,尽管装一个cygwin可以实现几乎上面所有的操作,但最佳的解决方案还是用原生的吧。netsh是windows的一个网络工具,只要你愿意,你在命令行下可以通过它实现几乎所有的windows网络操作。

还是把本地80转移到10.0.0.1的8080

netsh interface portproxy add listenport=80 connectaddress=10.0.0.1 connectport=8080

相关 [端口] 推荐:

伊朗封锁所有VPN端口

- tomz - Solidot
伊朗是互联网封锁最广泛和最严密的国家之一,社交网站如Facebook、Youtube、Orkut、MySpace和Twitter皆遭到屏蔽,迫使伊朗网民使用VPN等工具绕过审查. 然而现在,伊朗的互联网封锁深入到了新的地步:从2011年9月30日起,所有VPN端口都被封锁,伊朗正朝着建立“清真局域网”大步前进.

端口重用引发的惨案

- ndv - 淘宝核心系统团队博客
最近做个性能测试,需要在一台机器上启动很多客户端,连接到同一台服务器,我在一台机器上启动了六万个连接,于是,端口被占用完了. 按照我的理解,因为我作用端口是作为客户端,应该不会影响到其它进程,于是我放心大胆地去做测试,结果就引发了悲剧. 有服务器程序要用到5191端口,却显示端口被占用了,lsof看了下,居然只有我的进程占用了,完全颠覆我的惯性思想.

伊朗封锁所有VPN端口

- Aim - internet.solidot.org
伊朗是互联网封锁最广泛和最严密的国家之一,社交网站如Facebook、Youtube、Orkut、MySpace和Twitter皆遭到屏蔽,迫使伊朗网民使用VPN等工具绕过审查. 然而现在,伊朗的互联网封锁深入到了新的地步:从2011年9月30日起,所有VPN端口都被封锁,伊朗正朝着建立“清真局域网”大步前进.

怎么查询端口被占用

- - BlogJava-首页技术区
以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用该方法. 1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等.         这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:.

端口查看,关闭进程,Kill

- - ITeye博客
1、Windows平台. 在windows命令行窗口下执行:. 1.查看所有的端口占用情况.   协议    本地地址                     外部地址               状态                   PID. 2.查看指定端口的占用情况.   协议    本地地址                     外部地址               状态                   PID.

计算机网络端口的定义

- - CSDN博客互联网推荐文章
本文所述端口都是逻辑意义上的端口,是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等. 我们这里将要介绍的就是逻辑意义上的端口. (1)知名端口(Well-Known Ports)  . 知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务.

Windows 下如何关闭特定端口

- - 爱凝依依
然后ctrl+alt+delete 打开任务管理器,找到tor.exe右键end process.

几个端口转发的例子

- - 开源小站
很多情况下,我们往往需要通过对某个端口进行转发(端口映射)实现某些特殊功能,比如堡垒机和负载均衡什么的. 在这里我就稍微总结了几种最常用的端口转发方式供大家参考. Linux防火墙模式——反向NAT. 这种模式大多是要求用户很快速的实现将外网的某个端口eth0 1.1.1.1:80的流量引流到内网的一台主机10.0.0.1:8080中,本机内网IP eth1 10.0.0.2这种模式性能是毋庸置疑的,但相对来说稳定性和可控性不佳,往往用于临时过渡.

Shadowsocks屏蔽端口iptables规则

- - 深度VPS
Shadowsocks经常被人滥发垃圾邮件之类的而被暂停服务. 我们仅需保留SSH,SQL,DNS,HTTP和HTTPS这些主要端口,其它的用iptables做下限制,这样就高枕无忧了. 请把你的SSH22端口改了.

JSP端口转发神器:KPortTran

- - Hacking is endless! Focus on network security!
back.jsp?lip=本地ip&lp=本地端口&rip=远程ip&rp=远程端口&lp2=本地端口2//本地监听转发到第二个端口&m=运行模式//合法的值有:listen tran slave三种. 该模式下,会在本地监听两个端口,相互转发数据. 需要参数:lip、lp、rip、rp. 该模式为正向转发下,会在本地的lip上监听lp端口,当有连接建立时,再连接rip的rp端口.