文档章节

ubuntu iptables nat 数据包转发

Yashin
 Yashin
发布于 2015/04/15 22:32
字数 437
阅读 105
收藏 1

问题:当机房某网络线路出现问题时(例如广东电信无法访问git.oschina.net) 临时应急解决方案:利用可访问节点A做端口转发,使得无法访问的用户可以正常访问。

A机公网IP(作为代理节点):x.x.x.10,公网网卡为eth1 B机公网IP(git@osc服务器):x.x.x.11

目的:通过访问x.x.x.10访问到x.x.x.11,转发端口包括22(SSH),80(Http),443(Https)

以下命令均在A机下root用户执行。

开启端口转发

# iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp -d x.x.x.10 --dport 22 -j DNAT --to-destination x.x.x.11 
# iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp -d x.x.x.10 --dport 80 -j DNAT --to-destination x.x.x.11 
# iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp -d x.x.x.10 --dport 443 -j DNAT --to-destination x.x.x.11 
# iptables -t nat -A POSTROUTING -o eth1 -p tcp -m tcp -d x.x.x.11 --dport 22 -j SNAT --to-source x.x.x.10 
# iptables -t nat -A POSTROUTING -o eth1 -p tcp -m tcp -d x.x.x.11 --dport 80 -j SNAT --to-source x.x.x.10 
# iptables -t nat -A POSTROUTING -o eth1 -p tcp -m tcp -d x.x.x.11 --dport 443 -j SNAT --to-source x.x.x.10 
# echo 1 > /proc/sys/net/ipv4/ip_forward

临时关闭ufw,否则会影响iptables

# ufw disable

关闭端口转发

echo 0 > /proc/sys/net/ipv4/ip_forward

查看 nat规则

# iptables -t nat -L -n --line-numbers

对应规则编号删除规则

# iptables -t nat -D PREROUTING $line-numbers

开启ufw

# ufw enable


至此,可将故障网络部分dns切换到A x.x.x.10,或者提示用户将本机host暂时映射到A x.x.x.10,待网络恢复再改回来。

© 著作权归作者所有

共有 人打赏支持
Yashin

Yashin

粉丝 254
博文 55
码字总数 5378
作品 1
深圳
高级程序员
【转】ubuntu 开启ip包转发做网关与nat的设置

基本思想:开启IP转发,设置好iptables规则。 2.1.开启IP转发 两种方式, 临时:echo "1">/proc/sys/net/ipv4/ip_forward 固定:修改/etc/sysctl.conf,取消这一行的注释: net.ipv4.ip_forw...

mj4738
2012/01/08
0
0
Ubuntu ufw 配置nat

ufw是ubuntu下默认自带的一个超级好用的防火墙.有了它以后,你可以轻松配置出来很强悍的防火墙,而不用再记复杂的iptables语法(当然了它只是个简化命令,底层依然是调用的iptables.).它的语法虽...

CyonDeer
2017/02/17
0
0
linux下iptables配置

什么是 ufw 在 Ubuntu 系统下,可以使用 ufw 打开/关闭 防火墙。ufw( Uncomplicated Firewall),是Canonical公司使用python开发的 iptables 的易用版。ufw实质还是使用的 iptables,只是简化...

音视频直播技术专家
08/08
0
0
Centos7配置为NAT服务器

Centos7做NAT路由器配置 准备三台实验机器: 模拟内网:Ubuntu14.04 192.168.104.10 模拟外网:Ubuntu14.04 10.20.20.100 模拟nat服务器(作为网关):centos7 192.168.104.2 10.20.20.2 环境...

vanche
2017/08/18
0
0
UBuntu8.04使用IPTables

UBuntu8.04使用的IPTables版本 iptabels --version 可以帮助查看版本号,当前版本为1.3.8 原理 IPTables由若干个table组成。每个table都包含了若干个链,每个链都包含了一组规则列表,每条规...

长平狐
2012/08/28
75
0

没有更多内容

加载失败,请刷新页面

加载更多

Flask 开发填坑

插件的选择: flask-security 真的是个鸡肋啊。自带的页面,好丑。还不如用flask-login来做呢。

pearma
34分钟前
1
0
讲述下 :LVM逻辑卷管理遇到的问题

LVM学习逻辑卷管理创建逻辑卷遇到的问题 1 实验环境 系统 内核 发行版本 CentOS 2.6.32-754.2.1.el6.x86_64 CentOS release 6.10 (Final) 由于是最小化安装没有xfs命令,yum安装如下包支持此...

linuxprobe16
今天
0
0
day95-20180922-英语流利阅读-待学习

Hey Jude 半个世纪传唱不衰的背后故事 毛西 2018-09-22 1.今日导读 2004 年,The Beatles 被《滚石》杂志选为“历史上最伟大的 50 位流行音乐家的第一位”。这四名来自英国利物浦的男孩不仅对...

飞鱼说编程
今天
2
0
OSChina 周六乱弹 —— 放假前期焦虑症晚期

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享Matteo的单曲《Panama》: 《Panama》- Matteo 手机党少年们想听歌,请使劲儿戳(这里) @新垣吉衣OSC :我发现只要去有小朋友...

小小编辑
今天
262
10
wait()被notify()后,接着执行wait()后面的语句

wait()被notify()后,接着执行wait()后面的语句

noteman
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部