红联Linux门户
Linux帮助

linux下的iptables的nat 急急求助

发布时间:2011-06-13 09:51:50来源:红联作者:liuhongming
我有两台服务器 一台是202.205.161.118 另外一台是191.168.1.1 都是linux平台。192.168.1.1怎么设置可以访问202.205.161.118。
文章评论

共有 14 条评论

  1. 191463233 于 2014-07-11 16:28:12发表:

    网关的问题啊

  2. yehg01 于 2014-07-07 08:18:33发表:

    引用:
    楼主最好先说清楚这两台服务器的网络拓朴,不然人家怎么帮你啊 ...

    比如说这两台服务器是否处于同一个城市、是否同一栋楼、是否同一个办公室、是否同一个交换机(或是多个交换机联接的同一个物理网络)等等,具有 ...
    hantu 发表于 2011-6-13 19:19

    有同感啊,至今还不知道你的两台服务器ip之间是什么关系。

  3. zhugj0208 于 2014-07-06 14:54:58发表:

    要通的前提条件
    1.直连,配置同网段ip
    2.非直连,配置路由,私网访问公网可以直接访问,但是公网访问私网,需要路由映射

  4. liuhongming 于 2011-06-15 08:30:40发表:

    谢谢

  5. china19901107 于 2011-06-15 05:17:05发表:

    我不知道你的实验需求是什么?
    echo "1" > /proc/sys/net/ipv4/ip_forward
    说明机器1开启了路由功能
    如果ping不通,可能有几种情况
    1.机器1的网关是否设置为192.168.1.2
    2.机器2的网卡Eth1网卡是否可用。(在机器2ping测试一下自己的eth1)
    4.机器2的filter表input链是否设置成accept
    上面的Dnat只是提供访问公网用户或者内网用户访问202.205.121.114:8080转为内网的192.168.1.3:80
    Snat只是提供内网用户上网用户浏览internet
    如果是ping测试的话,直接ping的是网卡eth1,不会进入DNAT转换。

  6. age 于 2011-06-14 13:58:44发表:

    引用:
    多谢各位大侠!我重新做了设置:机器1设置:eth0:192.168.1.2 eth1:202.205.121.114(外网地址)
    机器2设置:eth0:192.168.1.3
    并且运行了以下命令
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat ...
    liuhongming 发表于 2011-6-14 13:48

    你的snat也太混乱了吧...
    直接用[code]iptables -t nat -A POSTROUTING -i eth0 -o eth1 -j MASQUERADE[/code]

  7. liuhongming 于 2011-06-14 13:48:30发表:

    多谢各位大侠!我重新做了设置:机器1设置:eth0:192.168.1.2 eth1:202.205.121.114(外网地址)
    机器2设置:eth0:192.168.1.3
    并且运行了以下命令
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j SNAT --to 202.205.121.114
    iptables -t nat -A PREROUTING -i eth1 -d 202.205.121.114 -p tcp --dport 8080 -j DNAT --to 192.168.1.3:80
    我想再问一下我在机器2上直接ping 202.205.121.114 怎么ping不通啊。

  8. age 于 2011-06-14 10:39:58发表:

    引用:
    楼主貌似要做NAT,就需要给192.168.1.1的这个内网地址装备一个可用的公网地址,比如200.200.200.1,且这台服务器需要两个网卡,一个做内网,一个做外网
    1.echo “1” > /proc/sys/net/ipv4/ip_forward开启路由转发功 ...
    china19901107 发表于 2011-6-13 23:31

    iptables -P INPUT ACCEPT
    这个也太不安全了吧

  9. china19901107 于 2011-06-13 23:31:16发表:

    楼主貌似要做NAT,就需要给192.168.1.1的这个内网地址装备一个可用的公网地址,比如200.200.200.1,且这台服务器需要两个网卡,一个做内网,一个做外网
    1.echo “1” > /proc/sys/net/ipv4/ip_forward开启路由转发功能
    2.service iptables restart
    3. iptables -P OUTPUT ACCEPT
    iptables -P INPUT ACCEPT这里主要是将进出192.168.1.1本服务器的包设置成接收
    4.NAT需要做Snat内网访问外网
    iptables -A POSTROUTING -o eth0 -s 192.168.1.1 -j SNAT --to 200.200.200.1(假设外网网卡为eth0)
    nat需要做Dnat外网访问内网
    iptables -A PREROUTING -i eth0 -d 200.200.200.1 -j DNAT --to 192.168.1.1

  10. hantu 于 2011-06-13 19:19:25发表:

    楼主最好先说清楚这两台服务器的网络拓朴,不然人家怎么帮你啊 ...

    比如说这两台服务器是否处于同一个城市、是否同一栋楼、是否同一个办公室、是否同一个交换机(或是多个交换机联接的同一个物理网络)等等,具有公网IP的服务器是想让另外一台服务器通过互联网入口还是局域网入口来访问它等等 ...

  11. age 于 2011-06-13 16:31:33发表:

    嗯, 因为是不同网段, 必须有相应路由才行
    或者设置默认网关
    运行 route -n
    分别查看二台机子的路由吧

  12. liuhongming 于 2011-06-13 14:15:01发表:

    按照你的帮助我分别对这两台机器做了操作,可是192.168.1.1还是无法访问202.205的机器 ,是不是网关的问题啊

  13. age 于 2011-06-13 11:21:04发表:

    [i=s] 本帖最后由 age 于 2011-6-13 11:23 编辑 [/i]

    192.168.1.1机, 开放output链及状态访问
    iptables -P OUTPUT ACCEPT
    iptables -A INPUT -m state --state=RELATED,ESTABLISHED -j ACCEPT
    202.205.161.118, 针对192.168.1.1机开放INPUT链及状态访问
    iptables -A INPUT -s 192.168.1.1 -j ACCEPT
    iptables -A INPUT -m state --state=RELATED,ESTABLISHED -j ACCEPT

  14. liuhongming 于 2011-06-13 11:10:28发表:

    没人能够帮我吗?我的qq 364251766