centos里iptable的NAT

用centos5.3配nat死活都不行,参考N多配置方法都无济于事。

觉得是操作系统那里出了问题,又用了6.6,里面有个配置的图形引导界面,很容易就搞定了。

后来在英文网页里发现

echo "1" > /proc/sys/net/ipv4/ip_forward

这样就可以了。寻找N多地方,终于知道这是在OS系统默认不转发流量的时候,强制转发的方法。

常态的让系统转发需要修改配置文件。

/etc/sysctl.conf

里面

net.ipv4.ip_forward = 1

不起作用是因为默认值是0,disable,换成1就是enable了。

sysctl -p

更新,当然重启也可以。

chkconfig iptables on

常态开启防火墙,作为服务。

然后才是/etc/sysconfig/iptables文件的配置。

用添加命令也是实现,这里eth0为外,eth1为内部

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这就是内部上外部不做限制,这对于外网卡的IP地址为DHCP的时候很好用。

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 172.26.1.79

这是内部网192.168.1.0/24,到外部,替换源地址为172.26.1.79

让外界访问内部服务器,比如说远程桌面

iptables -t nat PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.2

-i eth0是进入的网卡,i是input的意思;-p tcp,协议是tcp; --dport 3389端口号是3389,--to-destination是内部服务器的IP地址

仅仅是这些还不够,上面是nat表,-t是指定table的,

在filter表里也需要配置

iptables -t filter -A FORWARD -i eth0 -m state --state NEW -m tcp -p tcp -d 192.168.1.2 --dport 3389 -j ACCEPT

不在转发链路里放行到内部的流量是不行的。为什么这里的-d是192.168.1.2,因为在前面的nat表里 PREROUTING已经进行了NAT路由,到达FORWARD处理流程的时候,目的地址已经从外网卡IP地址变成192.168.1.2,进入内网当然只能用内网IP地址过滤了。

还要转发一些流量许可

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -o eth0 -j ACCEPT

不要用系统自己带的那个防火墙图形配置,一用就出RH-Firewall-1-INPUT,搞的自己都乱了。

另外用5.3速度很慢,远程桌面接进去,画面都不动,看了5.3默认封掉转发是有原因的。

用6.6就没啥问题了,速度还可以接受。

下面是一些网络的配置命令

如果开始只有一个网卡,后来添加的,那么只有

/etc/sysconfig/network-scripts/ifcfg-eth0

没有ifcfg-eth1,可以复制ifcfg-eth0为ifcfg-eth1,然后修改里面的内容。

需要去查看网卡硬件文件

/etc/udev/rules.d/70-persistent-net.rules

确认里面有新增加的网卡,记录下mac地址,

DEVICE=eth1

NAME="System eth1"
HWADDR=00:50:56:A0:40:18
IPADDR=192.168.1.1
PREFIX=24
GATEWAY=
DNS1=
DOMAIN=

修改项,ip地址,掩码,HWADDR就是mac地址,如果版本高,有UUID,改的和eth0不同就可以。

内网卡不设网关。PREFIX是前缀,和掩码是一个意思,不同写法。os版本不同,5的写NETMASK,6就是PREFIX

iptables -F

清除预设表filter中的所有规则链的规则

iptables -X

清除预设表filter中使用者自定链中的规则

/etc/rc.d/init.d/iptables save  或者 service iptables save

保存命令打进去的配置,不然重启就没了

service iptables restart

重启服务

时间: 2024-11-06 14:51:15

centos里iptable的NAT的相关文章

centos里mysql无法用localhost连接的解决方法

遇到这个问题可能是由于我未安装在默认路径导致的 解决方法: 由于mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,但linux系统总是去/tmp/mysql.sock查找,所以会报错 [[email protected] ~]# find / -name mysql.sock/var/lib/mysql/mysql.sock 1.直接指定mysql通道 [[email protected] ~]# mysql --socket=/var/lib/my

iptable filter nat MASQUERADE snat dat

在这里,系统会根据IP数据包中的destination ip address中的IP地址对数据包进行分发.如果destination ip adress是本机地址,数据将会被转交给INPUT链.如果不是本机地址,则交给FORWARD链检测. 这也就是说,我们要做的DNAT要在进入这个菱形转发区域之前,也就是在PREROUTING链中做, 比如我们要把访问202.103.96.112的访问转发到192.168.0.112上: iptables -t nat -A PREROUTING -d 202

CentOS里运行.net core控制台程序

说明:2带了4(vs2017仅支持2.1,命令中修改版本就好)1注册 Microsoft 密钥和源安装 .NET 之前,需要:注册 Microsoft 密钥.注册产品存储库.安装必需的依赖项.每台计算机只需要执行一次此操作.打开终端并运行以下命令.bash 复制sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm ------------------------------

在 CentOS 里安装 BIND-UTILS 以使用 DIG、HOST 和 NSLOOKUP

想用一下 dig 指令来进行域名设置的查询,结果 CentOS 提示没有此指令,然后想当然的以为就需要安装 DIG 软件包,可是查了查才知道实际上 dig.host.nslookup 这几个指令都在 bind-utils 软件包里面. 安装 bind-utils 倒是极简单,直接 yum 安装即可, yum install bind-utils 然后相应的简单查询就可以直接输入指令, dig abc.com host abc.com nslookup abc.com

CentOS里上传下载查看命令

由于每次在CentOS中要下载一些配置文件到物理机,和上传一些文件到虚拟机,导致来回的开启ftp软件有点麻烦,这里用两个命令工具,来解决可以随意的上传和下载. 安装软件包: [[email protected] ~]# yum -y install lrzsz Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirrors.

基于CentOS实现LVS的nat模式和DR模式

关于LVS的错误总结见以下: nat模式:http://amelie.blog.51cto.com/12850951/1979172 DR模式:http://amelie.blog.51cto.com/12850951/1979437 来自于某国内名企架构师的说法--LVS学好了,网络这部分就通透了. 这里阿拉只列举实现方式.伙计们有不懂的可以call我.嘛,最起码一两个月阿拉混博客都挺勤. DR模式: 负载均衡器:172.17.7.17(eth0) real server1:172.17.6.

iptable和nat表应用

iptables小案例 需求:把80,22,21端口放行,22端口只有某个IP段可以访问. [[email protected] ~]# vim /usr/local/sbin/iptables.sh #! /bin/bash ipt="/usr/sbin/iptables" #变量 $ipt -F #清空规则 $ipt -P INPUT DROP #定义默认策略 $ipt -P OUTPUT ACCEPT $ipt -P FORWARD ACCEPT $ipt -A INPUT -m

如何在CentOS里切换操作系统所用的语言,中英文切换

操作系统CentOS 7.5,安装的时候选择的事中文,后来想改成英文 1.点左上角的"应用程序"---->再点"系统工具"----->"设置" 2.点"区域语言",再点右侧的"汉语(中国)" 3.由""汉语(中国)"改选为"English (United States)",点右上角的"完成"按钮 4.点"Restar

Centos里Mysql默认密码无法登陆

问题描述:双十一又入手了一台阿里云服务器,环境再次配置起来,到了mysql这里就卡住了,怎么也登录不进入 解决方案:发现和密码里的特殊字符有关系,百度到了这篇文章,解决办法就是在特殊字符前面加反斜杠就哦了 参考地址:https://www.bbsmax.com/A/pRdBZe0adn/ 能随机到这密码我也是服了... 原文地址:https://www.cnblogs.com/wangbg/p/11845365.html