当前位置:首页 » 币种行情 » iptableupeth1

iptableupeth1

发布时间: 2022-12-30 02:15:10

❶ Linux下的iptable实现nat网关。(DNS,DHCP,外网,内部局域网)

本文主要介绍如何使用iptbales实现linux2.4下的强大的NAT功能。关于iptables的详细语法请参考“用iptales实现包过虑型防火墙”一文。需要申明的是,本文绝对不是 NAT-HOWTO的简单重复或是中文版,在整个的叙述过程中,作者都在试图用自己的语言来表达自己的理解,自己的思想。
一、概述
1. 什么是NAT
在传统的标准的TCP/IP通信过程中,所有的路由器仅仅是充当一个中间人的角色,也就是通常所说的存储转发,路由器并不会对转发的数据包进行修改,更为确切的说,除了将源MAC地址换成自己的MAC地址以外,路由器不会对转发的数据包做任何修改。NAT(Network Address Translation网络地址翻译)恰恰是出于某种特殊需要而对数据包的源ip地址、目的ip地址、源端口、目的端口进行改写的操作。
2. 为什么要进行NAT
我们来看看再什么情况下我们需要做NAT。
假设有一家ISP提供园区Internet接入服务,为了方便管理,该ISP分配给园区用户的IP地址都是伪IP,但是部分用户要求建立自己的WWW服务器对外发布信息,这时候我们就可以通过NAT来提供这种服务了。我们可以在防火墙的外部网卡上绑定多个合法IP地址,然后通过NAT技术使发给其中某一个IP地址的包转发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包。
再比如使用拨号上网的网吧,因为只有一个合法的IP地址,必须采用某种手段让其他机器也可以上网,通常是采用代理服务器的方式,但是代理服务器,尤其是应用层代理服务器,只能支持有限的协议,如果过了一段时间后又有新的服务出来,则只能等待代理服务器支持该新应用的升级版本。如果采用NAT来解决这个问题,
因为是在应用层以下进行处理,NAT不但可以获得很高的访问速度,而且可以无缝的支持任何新的服务或应用。
还有一个方面的应用就是重定向,也就是当接收到一个包后,不是转发这个包,而是将其重定向到系统上的某一个应用程序。最常见的应用就是和squid配合使用成为透明代理,在对http流量进行缓存的同时,可以提供对Internet的无缝访问。
3. NAT的类型
在linux2.4的NAT-HOWTO中,作者从原理的角度将NAT分成了两种类型,即源NAT(SNAT)和目的NAT(DNAT),顾名思义,所谓SNAT就是改变转发数据包的源地址,所谓DNAT就是改变转发数据包的目的地址。
二、原理
在“用iptales实现包过虑型防火墙”一文中我们说过,netfilter是Linux 核心中一个通用架构,它提供了一系列的"表"(tables),每个表由若干"链"(chains)组成,而每条链中可以有一条或数条规则(rule)组成。并且系统缺省的表是"filter"。但是在使用NAT的时候,我们所使用的表不再是"filter",而是"nat"表,所以我们必须使用"-t nat"选项来显式地指明这一点。因为系统缺省的表是"filter",所以在使用filter功能时,我们没有必要显式的指明"-t filter"。
同filter表一样,nat表也有三条缺省的"链"(chains),这三条链也是规则的容器,它们分别是:
PREROUTING:可以在这里定义进行目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT;
POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则。
OUTPUT:定义对本地产生的数据包的目的NAT规则。

三、操作语法
如前所述,在使用iptables的NAT功能时,我们必须在每一条规则中使用"-t nat"显示的指明使用nat表。然后使用以下的选项:
1. 对规则的操作
加入(append) 一个新规则到一个链 (-A)的最后。
在链内某个位置插入(insert) 一个新规则(-I),通常是插在最前面。
在链内某个位置替换(replace) 一条规则 (-R)。
在链内某个位置删除(delete) 一条规则 (-D)。
删除(delete) 链内第一条规则 (-D)。
2. 指定源地址和目的地址
通过——source/——src/-s来指定源地址(这里的/表示或者的意思,下同),通过——destination/——dst/-s来指定目的地址。可以使用以下四中方法来指定ip地址:
a. 使用完整的域名,如“www.linuxaid.com.cn”;
b. 使用ip地址,如“192.168.1.1”;
c. 用x.x.x.x/x.x.x.x指定一个网络地址,如“192.168.1.0/255.255.255.0”;
d. 用x.x.x.x/x指定一个网络地址,如“192.168.1.0/24”这里的24表明了子网掩码的有效位数,这是 UNIX环境中通常使用的表示方法。
缺省的子网掩码数是32,也就是说指定192.168.1.1等效于192.168.1.1/32。
3. 指定网络接口
可以使用——in-interface/-i或——out-interface/-o来指定网络接口。从NAT的原理可以看出,对于PREROUTING链,我们只能用-i指定进来的网络接口;而对于POSTROUTING和OUTPUT我们只能用-o指定出去的网络接口。
4. 指定协议及端口
可以通过——protocol/-p选项来指定协议,如果是udp和tcp协议,还可——source-port/——sport和 ——destination-port/——dport来指明端口。
四、准备工作
1. 编译内核,编译时选中以下选项,具体可参看“用iptales实现包过虑型防火墙”一文:
Full NAT
MASQUERADE target support
REDIRECT target support
2. 要使用NAT表时,必须首先载入相关模块:
modprobe ip_tables
modprobe ip_nat_ftp
iptable_nat 模块会在运行时自动载入。
五、使用实例
1. 源NAT(SNAT)
比如,更改所有来自192.168.1.0/24的数据包的源ip地址为1.2.3.4:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT ——to 1.2.3.4
这里需要注意的是,系统在路由及过虑等处理直到数据包要被送出时才进行SNAT。
有一种SNAT的特殊情况是ip欺骗,也就是所谓的Masquerading,通常建议在使用拨号上网的时候使用,或者说在合法ip地址不固定的情况下使用。比如
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
可以看出,这时候我们没有必要显式的指定源ip地址等信息。
2. 目的SNAT(DNAT)
比如,更改所有来自192.168.1.0/24的数据包的目的ip地址为1.2.3.4:
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -j DNAT ——to 1.2.3.4
这里需要注意的是,系统是先进行DNAT,然后才进行路由及过虑等操作。
有一种DNAT的特殊情况是重定向,也就是所谓的Redirection,这时候就相当于将符合条件的数据包的目的ip地址改为数据包进入系统时的网络接口的ip地址。通常是在与squid配置形成透明代理时使用,假设squid的监听端口是3128,我 们可以通过以下语句来将来自192.168.1.0/24,目的端口为80的数据包重定向到squid监听
端口:
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 ——dport 80
-j REDIRECT ——to-port 3128

六、综合例子
1. 使用拨号带动局域网上网
小型企业、网吧等多使用拨号网络上网,通常可能使用代理,但是考虑到成本、对协议的支持等因素,建议使用ip欺骗方式带动区域网上网。
成功升级内核后安装iptables,然后执行以下脚本:
#载入相关模块
modprobe ip_tables
modprobe ip_nat_ftp
#进行ip伪装
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
2. ip映射
假设有一家ISP提供园区Internet接入服务,为了方便管理,该ISP分配给园区用户的IP地址都是伪IP,但是部分用户要求建立自己的WWW服务器对外发布信息。我们可以再防火墙的外部网卡上绑定多个合法IP地址,然后通过ip映射使发给其中某一 个IP地址的包转发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包。
我们假设以下情景:
该ISP分配给A单位www服务器的ip为:
伪ip:192.168.1.100
真实ip:202.110.123.100
该ISP分配给B单位www服务器的ip为:
伪ip:192.168.1.200
真实ip:202.110.123.200
linux防火墙的ip地址分别为:
内网接口eth1:192.168.1.1
外网接口eth0:202.110.123.1
然后我们将分配给A、B单位的真实ip绑定到防火墙的外网接口,以root权限执行以下命令:
ifconfig eth0 add 202.110.123.100 netmask 255.255.255.0
ifconfig eth0 add 202.110.123.200 netmask 255.255.255.0
成功升级内核后安装iptables,然后执行以下脚本:
#载入相关模块
modprobe ip_tables
modprobe ip_nat_ftp
首先,对防火墙接收到的目的ip为202.110.123.100和202.110.123.200的所有数据包进行目的NAT(DNAT):
iptables -A PREROUTING -i eth0 -d 202.110.123.100 -j DNAT ——to 192.168.1.100
iptables -A PREROUTING -i eth0 -d 202.110.123.200 -j DNAT ——to 192.168.1.200
其次,对防火墙接收到的源ip地址为192.168.1.100和192.168.1.200的数据包进行源NAT(SNAT):
iptables -A POSTROUTING -o eth0 -s 192.168.1.100 -j SNAT ——to 202.110.123.100
iptables -A POSTROUTING -o eth0 -s 192.168.1.200 -j SNAT ——to 202.110.123.200
这样,所有目的ip为202.110.123.100和202.110.123.200的数据包都将分别被转发给192.168.1.100和192.168.1.200;而所有来自192.168.1.100和192.168.1.200的数据包都将分 别被伪装成由202.110.123.100和202.110.123.200,从而也就实现了ip映射。

❷ eth1 设备的 MAC 地址与预想的不符,忽略, 而且使用ifconfig查看不到eth1这个网卡

还没启动eth1吧
你应该这么看
ifconfig -all
就可以看到所有的网卡设备了
ifonfig eth1 up
启动eth1看看

❸ 我的UBUNTU 10中无线网卡名称是eth1,不是wlan0,求大哥帮忙呀!

不需要修改吧,我的 也是eth1阿! 一切都很正常 ,放心就是了

❹ 如何用ip命令修改接口eth1的硬件设备参数name

linux下修改IP地址可以使用命令:ifconfig
eth0
192.168.1.11/24
up其中的eth0是接口号,192.168.1.11/24是IP地址和掩码,up表示接口IP配置好以后要处于开启状态。添加默认网关的命令route
add
-net
0.0.0.0
netmask
0.0.0.0
gw
192.168.1.1,但是使用命令配置的IP地址重启之后须要重新设置。
要保存IP地址如果你的系统支持setup或netconfig之类的命令,可以使用这类命令对接口进行配置。也可以直接编辑对应的网络接口配置文件,/etc/sysconfig/network-scripts/ifcfg-eth0内容如下:
#
Advanced
Micro
Devices
[AMD]
79c970
[PCnet32
LANCE]
DEVICE=eth0
#接口名称
BOOTPROTO=none#表示如何获得IP,有三个参数可以供选择static手动指定IP,dhcp使用DHCP获得IP,none表示启动时不使用任何协议
HWADDR=00:0c:29:34:ad:70#表示使用的MAC地址,可以不使用
ONBOOT=yes#开机是否开启这个接口,yes或no两个选择
NETMASK=255.255.255.0#子网掩码
IPADDR=192.168.0.3#IP地址
GATEWAY=192.168.0.1#网关
TYPE=Ethernet#接口对应的网络类型,这里是以太网,也可以不使用这个选项。
上面的所有字段名都是大写。

❺ linux eth1网卡激活不了解决方法

linux
eth1网卡激活不了解决方法linux
eth1
网卡激活不了,怎么解决?
www.dnjsb.com
我们实验室上网有台服务器专门来管理,里边有eth0

eth1
网卡,打开管理-》网络以后发现ppp0和eth0网卡都处于激活状态,而eht1网卡无法激活,当然可以点击上边的激活按钮,也可以通过命令行
ifconfig
eth1
up
来激活。但是发现两种方法未能激活这个网卡,这样的结果是,虽然这台服务器可以上网,但是实验室内部的电脑上不了网。经过我的苦心研究,终于找到了解决办法。步骤如下:(1)
打开eth1的配置,记录其属性信息,尤其是硬件设备选项中的关联MAC(当然可以探测到)(2)删除掉eth1
这个激活设备,(3)新建一个名叫eth1
的设备,里边的属性要和刚才删除掉的一致。尤其是MAC(4)
激活这个设备。再试试内部网络能否上网。(5)如果设备都激活还不能上网,就重启一下服务器的dhcp服务,用命令
service
dhcpd
restart
就可以.

❻ 怎么解决虚拟机迁移后eth0变成了eth1

1、用ifconfig
eth0
up命令开启下网卡。
#ifconfig
eth0
up
2、更改eth0配置:
#vi/etc/sysconfig/network-scripts/ifcfg-eth0下显示:
DEVICE=eth0
ONBOOT=no
//开机启动网卡
BOOTPROTO=static
IPADDR=192.168.1.8
//自己设置有效ip地址
NETMASK=255.255.255.0
//子网掩码
GATEWAY=192.168.1.1
//有效网关地址
HWADDR=00:0C:29:96:38:F8
注意其中的ONBOOT=no将其改为yes,网卡激活。
3、重启服务。
#service
network
restart
重启后配置生效。

热点内容
比特币和ico代币与区块链 发布:2025-07-29 20:34:59 浏览:28
重仓区块链的基金 发布:2025-07-29 20:22:37 浏览:470
币圈一万美金 发布:2025-07-29 20:22:32 浏览:724
支持信用卡支付的比特币交易吗 发布:2025-07-29 20:16:47 浏览:165
pro区块链 发布:2025-07-29 19:22:31 浏览:70
2017年区块链投融资 发布:2025-07-29 19:18:08 浏览:221
7月29日杭州区块链峰会 发布:2025-07-29 18:43:51 浏览:806
最新十大数字货币交易平台 发布:2025-07-29 18:17:17 浏览:547
btc交易挣钱吗 发布:2025-07-29 18:11:16 浏览:940
ltc是什么意思中文 发布:2025-07-29 18:01:32 浏览:515