linux下进行端口映射

工作需要将某个具有外网IP的server的某个端口映射到某个内网IP的server的相同端口上。

首先想到使用NAT,命令如下

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I PREROUTING -d $outterIP -p tcp --dport $outterPort -j DNAT --to-destination $innerIP:$innerPort
iptables -I FORWARD -p tcp -m state --state NEW,RELATED,ESTABLISHED -d $innerIP --dport $innerPort -j ACCEPT
iptables -I FORWARD -p tcp -m state --state NEW,RELATED,ESTABLISHED -s $innerIP --sport $innerPort -j ACCEPT
iptables -t nat -I POSTROUTING -s $innerIP -j SNAT --to-source $outterIP

后面发现NAT映射失败,仔细检查发现由于$outterIP并不是$innerIP的网关,从$innerIP回来的数据包直接从其网关传输走了,无法到达$outterIP所在的server, 即SNAT无法正常工作。

最后想了想,还是直接用ssh port forwarding了,命令如下

ssh -Nfq -c arcfour  -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ServerAliveInterval=15 -o ServerAliveCountMax=3 -L 0.0.0.0:8118:192.168.9.85:8118 -i /root/.ssh/id_rsa root@127.0.0.1

效率方面估计会比直接NAT端口映射差一点,但我也能接受了

最后附一张iptables数据包流转图

iptables数据包流转

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏友弟技术工作室

iptables系列二

iptables系列之基本应用及显式扩展 ? netfilter:Framework,TCP,内核中 iptables语法 iptables [-t tab...

409120
来自专栏ml

linux开关端口问题

linux开关端口问题: 我们知道一些常用的端口,比如mysql的端口为3306,sql的端口为:1433,以及tomcat的端口为 8008等等一样! ...

98160
来自专栏北京马哥教育

Iptables防火墙 基础知识

Iptables防火墙 基础知识 位置 使用vim /usr/sysconfig/iptables 启动、关闭、保存 service iptables stop...

32860
来自专栏运维小白

10.15 iptables filter表案例

iptables常用知识回顾点 iptables -I/-A/-D 后紧跟 链 ,可以是INPUT,OUTPUT,FORWARD iptables -P 用来指...

21090
来自专栏Java成神之路

Java_注解_异常_01_ElementType cannot be resolved to a variable

import java.lang.annotation.RetentionPolicy;

7920
来自专栏蓝天

iptables简单应用

可以修改/etc/rc.d/boot.local让规则重启后也能生效,如: /sbin/iptables -F /sbin/iptables -A INP...

11330
来自专栏散尽浮华

通过iptables限制sftp端口连接数

之前在公司服务器上部署了sftp,用于上传业务系统的附件。后来由于程序连接问题,使的sftp连接数过多(做多时高达400多个sftp连接数),因为急需要对sft...

520100
来自专栏运维

linux下备份脚本主之 遍历目录备份所有二级目录文件

1,备份脚本如下,我这里以备份CVS目录为例,总CVS目录下有几个Project,统统备份

20410
来自专栏编程微刊

动态表格之查看、删除、编辑

27720
来自专栏清晨我上码

第七节 netty前传-NIO 几种channel介绍

FileChannel.write()方法将数据写入FileChannel,该方法将Buffer作为参数。

14140

扫码关注云+社区

领取腾讯云代金券