ubuntu下 端口映射

10 篇文章 0 订阅

方法二:永久打开,重启依然有效

编辑/etc/sysctl.conf文件,将net.ipv4.ip_forward=1前面的#注释去掉,保存文件,然后执行sudo sysctl -p使其生效

 

典型使用场景举例

场景一:目标机的22端口外网没有打开,通过本地端口转发实现通过其他端口访问ssh的22端口

案例:125.69.67.213机器的22端口未对外开放,但开放了3000~4000之间的端口,因此通过3000端口转发到22实现ssh登录

sudo iptables -t nat -A PREROUTING -p tcp -i eth0 -d 125.69.67.213 --dport 3000 -j DNAT --to 125.69.67.213:22

这个属于本机端A端口转发到本机的B端口

 

场景二:将内网的22端口映射到外网的一个端口,实现SSH直接登录,不用跳转

案例:192.168.2.61为外网机,192.168.2.70为内网机,如果不做映射,需要先登录到61,再登录到70.做如下映射之后,可直接通过外网机的3003登录到内网机

sudo iptables -t nat -A PREROUTING -d 192.168.2.61 -p tcp --dport 3003 -j DNAT --to-destination 192.168.2.70:22

sudo iptables -t nat -A POSTROUTING -d 192.168.2.70 -p tcp --dport 22 -j SNAT --to 192.168.2.61

注:(1) 本例中也可以通过SecureCRT的自动登录实现。

 

场景三:在外网直接访问内网的MySQL数据库

案例:很多时候数据库在内网机,外网不能直接访问,但做运维的时候可能需要通过图形界面工具直接连上去。做端口映射就可以解决这个问题。例如:将外网机192.168.2.61的3001端口转发到内网机192.168.2.70的MySQL的3306端口

sudo iptables -t nat -A PREROUTING -d 192.168.2.61 -p tcp --dport 3001 -j DNAT --to-destination 192.168.2.70:3306

sudo iptables -t nat -A POSTROUTING -d 192.168.2.70 -p tcp --dport 3306 -j SNAT --to 192.168.2.61

 

iptables其他常见操作

查看当前iptables的所有规则

sudo iptables -L

或者

sudo iptables-save

 

iptables规则保存到文件

sudo sh -c "iptables-save > /etc/iptables.rules"

 

从文件恢复iptables的规则

sudo iptables-restore /etc/iptables.rules

 

开机启动加载iptables规则

注:配置的规则系统默认重启后就失效,因此做开机启动时加载iptables的配置也有必要。

在/etc/network/interfaces的末尾添加如下一行: 

pre-up iptables-restore < /etc/iptables.rules

 

如果想在关机的时候自动保存修改过的iptables规则,可添加如下行

post-down iptables-save > /etc/iptables.up.rules

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值