Linux或Windows上实现端口映射


通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服务器经过配置就可以承担起了转发数据包的功能。




一、Windows Server 下实现端口映射

1. 查询端口映射情况

netsh interface portproxy show v4tov4

2. 查询某一个IP的所有端口映射情况

netsh interface portproxy show v4tov4 | find "[目标IP]"

例:netsh interface portproxy show v4tov4 | find "192.168.1.1"

3. 增加一个端口映射

netsh interface portproxy add v4tov4 listenaddress=[外网IP] listenport=[外网端口] connectaddress=[内网IP] connectport=[内网端口]

例:netsh interface portproxy add v4tov4 listenaddress=2.2.2.2 listenport=8080 connectaddress=192.168.1.50 connectport=80

4. 删除一个端口映射

netsh interface portproxy delete v4tov4 listenaddress=[外网IP] listenport=[外网端口]

例:netsh interface portproxy delete v4tov4 listenaddress=2.2.2.2 listenport=8080

二、Linux 下实现端口映射

1. 允许数据包转发:

echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j MASQUERADE

2. 设置端口转发:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport [外网端口] -j DNAT --to-destination [内网地址]:[内网端口]

例如: iptables -t nat -A PREROUTING -p tcp -m tcp --dport 6080 -j DNAT --to-destination 10.0.0.100:6090

3. 保存配置。如果不保存,重启后此映射将失效

service iptables save

时间: 2024-08-01 01:32:44

Linux或Windows上实现端口映射的相关文章

Linux下用iptables做端口映射

Linux下用iptables做端口映射详细过程 在CentOS5.4上用iptables配置了端口映射,讲述详细的配置过程,供大家参考. [实现功能] server-A eth0      119.159.220.96  外网 eth1      10.105.75.32     内网 server-B 192.168.137.3              内网 将server-A的80端口映射到server-B的3306端口,实现通过server-A的外网地址访问server-B内网的338

TCP之Delay ACK在Linux和Windows上实现的异同-Linux的自适应ACK

关于TCP Delay ACK的概念我就不多说了,到处复制粘贴标准文献以及别人的文章只能让本文篇幅加长而降低被阅读完的欲望,再者这也不是什么论文,附录参考文献几乎很少有人去看,所以我把这些都略过了. 和风吹的干皮鞋,吹的断愁绪吗? 写完本文后的补充: 这段话是我写完本文后补上去的.本来我想把这篇文章控制在2000字以内,或者更少的,800-1000字以内,无奈还是说多了...今天心情非常好,因为我竟然在梦里把三亨利之战的细节搞清楚了,迄今,我觉得自己对于西洋史的认知更近了一步,可以说今天是一个里

在linux和windows上安装qt及creator

qt是个跨平台的好东西. 因为考虑到将来的需求,新做的软件需要能够跨平台,因为是用qt来做,所以一开始搭环境就考虑到跨平台的迁移. 一,windows平台 windows上用的是qt5.5+mingw+qtcreator 3.5 其实windows没什么可说的 1,从qt64ng里下载最新的qt5.5+mingw的环境,然后安装包安装. 2,下载最新的qtcreator,然后安装 3,打开qtcreator,工具->选项->构建与运行 添加一个kit 然后选择qt版本 然后选择编译器和调试器

windows 2003 设置端口映射

windows 2003 的 netsh 默认没有设置端口映射的功能,需要先安装下 ipv6 协议,怎么安装?找到本地连接 右键属性 添加新的协议即可,安装后需要重启系统,而后即可使用windows 的端口映射命令: netsh interface portproxy add v4tov4 listenport=N3 connectaddress=hostD_IP connectport=N2 netsh interface portproxy show all 设置将所有到本地1433端口的连

linux 外网ssh通过端口映射访问内网linxu

1,外网ssh通过端口映射访问内网linxu服务器

windows下开启端口映射配置办法

#1.添加一个端口映射 netsh interface portproxy add v4tov4 listenaddress=大网IP listenport=端口  connectaddress=要映射的小网IP   connectport=端口 #2.查看存在的转发 netsh interface portproxy show all #3. 防火墙开启对应映射端口

Erlang分布式在linux和windows上的注意事项

没事做,就在两台机器间测试下Erlang分布式的例子,一个台是windowsXP,一台装的redHat9,没有详细的文档,自己摸索着搞成功了,记录下. 1.首先,分布式Erlang的实现提供了自有的安全机制来预防未经授权的Erlang系统访问.Erlang系统与别的机器进行交互时必须有同样的magic cookie,保存在一个称为.erlang.cookie的文件中,为了在两台不同机器间测试,需要编辑一份.erlang.cookie,内容随便,比如:just_test 然后将这份文件拷贝到win

如何在思科路由器上做端口映射

详细请见附件 1.首先进入到交换机 Telnet 网关 Telnet 192.168.12.1 2.进入路由器 telnet 10.0.0.1 3.进入特权模式 输入en 输入密码 4.show run 查看当前的配置 SH RUN 备份当前信息,写上备份日期. 5.进入全局配置 输入 config terminal 6.写入需要映射的端口 ip nat inside source static tcp192.168.12.59 8088 60.12.222.28 8088 extendable

在Linux与Windows上获取当前堆栈信息

在编写稳定可靠的软件服务时经常用到输出堆栈信息,以便用户/开发者获取准确的运行信息.常用在日志输出,错误报告,异常检测. 在Linux有比较简便的函数获取堆栈信息: #include <stdio.h> #include <execinfo.h> #include <signal.h> #include <stdlib.h> #include <unistd.h> void handler(int sig) { void *array[5]; s