QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4730|回复: 30

linux下如何做端口映射??

[复制链接]
发表于 2004-11-24 20:29:26 | 显示全部楼层 |阅读模式
linux下如何做端口映射??顺便问一下哪里有linux下做代理服务器的文章或资料??谢谢 !!
 楼主| 发表于 2004-11-24 22:13:44 | 显示全部楼层
iptables的配置文件是哪一个呢???
回复

使用道具 举报

 楼主| 发表于 2004-11-24 22:24:21 | 显示全部楼层
[root@server root]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:E0:4C:7F:F5:BF
          inet addr:219.*.*.*  Bcast:219.*.*.*  Mask:255.255.255.128
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2695763 errors:1 dropped:0 overruns:0 frame:0
          TX packets:3739656 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1625382345 (1550.0 Mb)  TX bytes:1886632104 (1799.2 Mb)
          Interrupt:11 Base address:0x8000

eth1      Link encap:Ethernet  HWaddr 00:E0:4C:91:79:0A
          inet addr:192.168.222.1  Bcast:192.168.222.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3747938 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2551347 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1887379916 (1799.9 Mb)  TX bytes:1616292594 (1541.4 Mb)
          Interrupt:5 Base address:0xa000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
其中219.*.*.*  是 对外网卡IP,192.168.222.1对内网卡IP,现在需要把外部访问的80和21端口转到内部一IP为192.168.222.181的机器上,不知道如何设置,请指教!!
回复

使用道具 举报

 楼主| 发表于 2004-11-25 16:05:23 | 显示全部楼层
等了一天了,没人回,痛苦..........
回复

使用道具 举报

发表于 2004-11-25 16:21:10 | 显示全部楼层
[quote:06eeff0a2b="netbuddy"]iptables的配置文件是哪一个呢???[/quote]

/etc/sysconfig/iptables

配置iptables把iptables设置文件放在/etc/rc.d/rc.local中也可以.
回复

使用道具 举报

 楼主| 发表于 2004-11-25 16:30:30 | 显示全部楼层
我查找后发现IPTABLES文件l路径是在/etc/rc.d/init.d/iptables,这个有问题没??
回复

使用道具 举报

 楼主| 发表于 2004-11-25 16:44:13 | 显示全部楼层
我的iptables文件内容怎么是这样的啊,我靠
#!/bin/sh
#
# Startup script to implement /etc/sysconfig/iptables pre-defined rules.
#
# chkconfig: 2345 08 92
#
# description: Automates a packet filtering firewall with iptables.
#
# by [email protected], based on the ipchains script:
# Script Author:        Joshua Jensen <[email protected]>
#   -- hacked up by gafton with help from notting
# modified by Anton Altaparmakov <[email protected]>:
# modified by Nils Philippsen <[email protected]>
#
# config: /etc/sysconfig/iptables

# Source 'em up
. /etc/init.d/functions

IPTABLES_CONFIG=/etc/sysconfig/iptables

if [ ! -x /sbin/iptables ]; then
        exit 0
fi

KERNELMAJ=`uname -r | sed                   -e 's,\..*,,'`
KERNELMIN=`uname -r | sed -e 's,[^\.]*\.,,' -e 's,\..*,,'`

if [ "$KERNELMAJ" -lt 2 ] ; then
        exit 0
fi
if [ "$KERNELMAJ" -eq 2 -a "$KERNELMIN" -lt 3 ] ; then
        exit 0
fi



if  /sbin/lsmod 2>/dev/null |grep -q ipchains ; then
        # Don't do both
        exit 0
fi

iftable() {
        if fgrep -qsx $1 /proc/net/ip_tables_names; then
                iptables -t "$@"
        fi
}

start() {
        # don't do squat if we don't have the config file
        if [ -f $IPTABLES_CONFIG ]; then
            # If we don't clear these first, we might be adding to
            #  pre-existing rules.
            chains=`cat /proc/net/ip_tables_names 2>/dev/null`
            echo -n $"Flushing all current rules and user defined chains:"
            let ret=0
            for i in $chains; do iptables -t $i -F; let ret+=$?; done
            iptables -F
            let ret+=$?
            if [ $ret -eq 0 ]; then
              success
            else
              failure
            fi
            echo
            echo -n $"Clearing all current rules and user defined chains:"
            let ret=0
            for i in $chains; do iptables -t $i -X; let ret+=$?; done
            iptables -X
            let ret+=$?
            if [ $ret -eq 0 ]; then
              success
            else
              failure
            fi
            echo

            for i in $chains; do iptables -t $i -Z; done

            echo -n $"Applying iptables firewall rules: "
                grep -v "^[[:space:]]*#" $IPTABLES_CONFIG | grep -v '^[[:space:]]*$' | /sbin/iptables-restore -c && \
                    success || \
                    failure
            echo
            touch /var/lock/subsys/iptables
        fi
}

stop() {
        chains=`cat /proc/net/ip_tables_names 2>/dev/null`
        echo -n $"Flushing all chains:"
        let ret=0
        for i in $chains; do iptables -t $i -F; let ret+=$?; done
        iptables -F; let ret+=$?
        if [ $ret -eq 0 ]; then
                success
        else
                failure
        fi
        echo

        echo -n $"Removing user defined chains:"
        let ret=0
        for i in $chains; do iptables -t $i -X; let ret+=$?; done
        iptables -X; let ret+=$?
        if [ $ret -eq 0 ]; then
                success
        else
                failure
        fi
        echo
        echo -n $"Resetting built-in chains to the default ACCEPT policy:"
        iftable filter -P INPUT ACCEPT && \
           iftable filter -P OUTPUT ACCEPT && \
           iftable filter -P FORWARD ACCEPT && \
           iftable nat -P PREROUTING ACCEPT && \
           iftable nat -P POSTROUTING ACCEPT && \
           iftable nat -P OUTPUT ACCEPT && \
           iftable mangle -P PREROUTING ACCEPT && \
           iftable mangle -P POSTROUTING ACCEPT && \
           iftable mangle -P INPUT ACCEPT && \
           iftable mangle -P OUTPUT ACCEPT && \
           iftable mangle -P FORWARD ACCEPT && \
           success || \
           failure
        echo
        rm -f /var/lock/subsys/iptables
}

case "$1" in
  start)
        start
        ;;

  stop)
        stop
        ;;

  restart)
        # "restart" is really just "start" as this isn't a daemon,
        #  and "start" clears any pre-defined rules anyway.
        #  This is really only here to make those who expect it happy
        start
        ;;

  condrestart)
        [ -e /var/lock/subsys/iptables ] && start
        ;;

  status)
        tables=`cat /proc/net/ip_tables_names 2>/dev/null`
        for table in $tables; do
                echo $"Table: $table"
                iptables -t $table --list
        done
        ;;

  panic)
        echo -n $"Changing target policies to DROP: "
        iftable filter -P INPUT DROP && \
            iftable filter -P FORWARD DROP && \
            iftable filter -P OUTPUT DROP && \
            iftable nat -P PREROUTING DROP && \
            iftable nat -P POSTROUTING DROP && \
}

case "$1" in
  start)
        start
        ;;

  stop)
        stop
        ;;

  restart)
        # "restart" is really just "start" as this isn't a daemon,
        #  and "start" clears any pre-defined rules anyway.
        #  This is really only here to make those who expect it happy
        start
        ;;

  condrestart)
        [ -e /var/lock/subsys/iptables ] && start
        ;;

  status)
        tables=`cat /proc/net/ip_tables_names 2>/dev/null`
        for table in $tables; do
                echo $"Table: $table"
                iptables -t $table --list
        done
        ;;

  panic)
        echo -n $"Changing target policies to DROP: "
        iftable filter -P INPUT DROP && \
            iftable filter -P FORWARD DROP && \
            iftable filter -P OUTPUT DROP && \
            iftable nat -P PREROUTING DROP && \
            iftable nat -P POSTROUTING DROP && \
            iftable nat -P OUTPUT DROP && \
            iftable mangle -P PREROUTING DROP && \
            iftable mangle -P OUTPUT DROP && \
            iftable mangle -P POSTROUTING DROP && \
            iftable mangle -P INPUT DROP && \
            iftable mangle -P FORWARD DROP && \
            success || failure
回复

使用道具 举报

 楼主| 发表于 2004-11-25 16:48:42 | 显示全部楼层
在命令行下用了这两个命令:
iptables -A PREROUTING -t nat -p tcp -d 219.*.*.* --dport 21 -j DNAT --to 192.168.222.181:21
iptables -A PREROUTING -t nat -p tcp -d 219.*.*.* --dport 80 -j DNAT --to 192.168.222.181:80
没报错,想知道这两个命令记录到哪个配置文件下了,还是根本就是两条命令?
命令后是否需要reboot,我现在还不能重启
回复

使用道具 举报

 楼主| 发表于 2004-11-25 16:58:10 | 显示全部楼层
iptables服务是启动的,可iptables配置文件不清楚在那里呀,郁闷
回复

使用道具 举报

 楼主| 发表于 2004-11-25 17:22:47 | 显示全部楼层
iptables在哪里啊
[root@server /]# find -name iptables -print
./etc/rc.d/init.d/iptables
./lib/iptables
./sbin/iptables
回复

使用道具 举报

 楼主| 发表于 2004-11-26 11:02:24 | 显示全部楼层
我的帖子怎么跑这里来了啊,我这又不是垃圾帖,我是求助帖啊
回复

使用道具 举报

 楼主| 发表于 2004-11-26 11:49:07 | 显示全部楼层
大哥们,给个提示吧,我已经等了两天了..............................
回复

使用道具 举报

发表于 2004-11-26 12:13:30 | 显示全部楼层
真是不想理你,让你自己慢慢等吧。

真的求助?那就给你个提示: 本版有关端口映射的帖子不止你这一个。

这么有空等的话,麻烦你先看看公告贴和置顶贴。
回复

使用道具 举报

 楼主| 发表于 2004-11-26 13:08:58 | 显示全部楼层
可我没找到/etc/sysconfig/iptables 文件啊,我的iptables文件路径在/etc/rc.d/init.d/iptables下,内容贴出来了,好象和大家的不一样啊
回复

使用道具 举报

发表于 2004-11-26 13:15:01 | 显示全部楼层
Linux 跟 Linux 不一样,鬼知道你用的是哪一种?就是同一发行版的同一版本,不同的安装也有不同的文件。所以叫你好好去看公告,我说得很清楚让你应该说明什么。

至于你的 iptables 文件跟大家的不一样,太正常了,因为你找到的那一个是 iptables 的启动脚本。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 23:24 , Processed in 0.116983 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表