LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 969|回复: 8

我在Redhat 9.0用vmware装了FreeBSD,请问怎么两个系统同时上网?

[复制链接]
发表于 2003-11-12 20:54:54 | 显示全部楼层 |阅读模式
不一定要详细的,给点指示我吧,我一点头绪都没有!!!

先谢了!~~~~
发表于 2003-11-13 09:43:31 | 显示全部楼层
在配置vmware虚拟机时使用网桥模式,bridged network,并给bsd分配一个和主机类似的IP,例如主机是10.0.0.5,可以给bsd分配10.0.0.6,其他配置和主机一样。总而言之,就象局域网中的另一台机器。如果这两个IP都被允许上网,那这两个系统也都可以上。
 楼主| 发表于 2003-11-13 14:49:34 | 显示全部楼层
最初由 NetSnake 发表
在配置vmware虚拟机时使用网桥模式,bridged network,并给bsd分配一个和主机类似的IP,例如主机是10.0.0.5,可以给bsd分配10.0.0.6,其他配置和主机一样。总而言之,就象局域网中的另一台机器。如果这两个IP都被允许上网,那这两个系统也都可以上。


谢谢,但我是用动态的ip,是用电信的ADSL上网。而且ISP不允许重复拔号。
能不能把主机做能路由器?真的一点都不懂的说
 楼主| 发表于 2003-11-16 13:52:13 | 显示全部楼层
只能用一个IP,那做端口映射行吗?没弄过,一点都不懂。
发表于 2003-11-16 13:59:41 | 显示全部楼层
#!/bin/bash
#
# Script name: ipt_masq
# A simple script for masquerading, used in Linux (kernel 2.4.x).
#
# Copyleft 2002 by netman (netman@study-area.org).
#
# Redistribution of this file is permitted under the terms of
# the GNU General Public License (GPL).
#
# Date: 2002/02/04
# Version: 1.2

PATH=/sbin:/usr/sbin:/bin:/usr/bin
RC_SQUID=/etc/rc.d/init.d/squid
EXT_IF=ppp0
INT_IF=eth0
ALLOWED_ICMP="0 3 3/4 4 11 12 14 16 18"
DENIED_ICMP="8"

#
# ------------- ensure iptables ----------
which iptables &>/dev/null || {
echo
echo "$(basename $0): iptables program is not found."
echo " Please install the program first."
echo
exit 1
}
# ------------- disable ipchains ----------
lsmod | grep ipchains &>/dev/null && {
echo "Disabling ipchains..."
rmmod ipchains &>/dev/null
}

# ------------- modules -----------
echo "Loading modules..."
modprobe ip_tables &>/dev/null || {
echo -n "$(basename $0): loading ip_tables module failure."
echo " Please Fix it!"
exit 3
}
for file in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_conntrack_*.o
do
module=$(basename $file)
modprobe ${module%.*} &>/dev/null
done
for file in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_*.o
do
module=$(basename $file)
modprobe ${module%.*} &>/dev/null
done

# ------------- ipforwarding -----------
echo "Turning on IP forwarding..."
echo "1" > /proc/sys/net/ipv4/ip_forward

# ------------- anti spoofing -----------
echo "Turning on anti-spoofing..."
for file in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > $file
done

# ------------- flushing ----------
echo "Cleaning up..."
iptables -F -t filter
iptables -X -t filter
iptables -Z -t filter
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

# ------------- policies -------------
echo "Setting up policies to ACCEPT..."
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

# ------------- ICMP -------------
echo "Creating icmpfilter chain..."
iptables -N icmpfilter
for TYPE in $DENIED_ICMP; do
iptables -A icmpfilter -i $EXT_IF -p icmp \
--icmp-type $TYPE -j DROP
done
for TYPE in $ALLOWED_ICMP; do
iptables -A icmpfilter -i $EXT_IF -p icmp \
--icmp-type $TYPE -j ACCEPT
done

# ------------- block -------------
echo "Creating block chain..."
iptables -N block
iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state --state NEW,INVALID -i $EXT_IF -j DROP
iptables -A block -m state --state NEW -i ! $EXT_IF -j ACCEPT
iptables -A block -j DROP

# ------------- filter -------------
echo "Filtering packets..."
iptables -A INPUT -j icmpfilter
iptables -A INPUT -j block
iptables -A FORWARD -j icmpfilter
iptables -A FORWARD -j block

# ------------- masq -------------
echo "Masquerading internel network..."
iptables -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE

# ------------- tproxy -------------
$RC_SQUID status | grep pid &>/dev/null && {
echo "Enabling transparent proxy..."
INT_IP=$(ifconfig | grep "$INT_IF " -A 1 \
| awk '/inet/ {print $2}' | sed -e s/addr\://)
if [ -z "$INT_IP" ]; then
echo
echo "$(basename $0): there is no IP found on $INT_IF."
echo " Please make sure $INT_IF is setup properly."
echo
exit 3
fi
iptables -t nat -A PREROUTING -d $INT_IP -i $INT_IF \
-p tcp -m tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i $INT_IF -p tcp -m tcp \
--dport 80 -j REDIRECT --to-ports 3128
}
echo "Success!"
exit 0
## EOS
 楼主| 发表于 2003-11-16 15:24:37 | 显示全部楼层
谢谢大家!!现在能同时上网了。我打开主机的IP包转发就行了。

上面那一大段。。。。。只好仔细慢慢看了
发表于 2003-11-16 18:39:29 | 显示全部楼层
用nat方式不就行了
 楼主| 发表于 2003-11-17 12:57:29 | 显示全部楼层
用nat 方式我不懂的,一点都不懂,还是慢慢来吧/

运行上面的脚本,有这样的结果,请看看我是漏装什么服务吗?
运行这个脚本的系统是redhat 90虚拟机是freebsd4.8

# ./nat
Loading modules...
Turning on IP forwarding...
Turning on anti-spoofing...
Cleaning up...
Setting up policies to ACCEPT...
Creating icmpfilter chain...
Creating block chain...
Filtering packets...
Masquerading internel network...
./nat: line 114: /etc/rc.d/init.d/squid: 没有那个文件或目录
Success!
发表于 2003-11-17 19:32:49 | 显示全部楼层
试一下nat,不行再改回去,也就也就一两分钟的事情
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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