用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

其他Linux/Unix/BSD/OSX等发行版讨论
axxdz
帖子: 581
注册时间: 2006-10-15 11:33

用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#1

帖子 axxdz » 2012-04-08 13:42

我在virtualbox里安装了winxp,没设置iptable,就可以通过linux共享上网了啊,
但更我看网上有好多用 linux 共享上网的教程,都要设置 iptalbe 脚本,看得我眼花,
那是咋回事?为什么虚拟机可以直接上啊?多谢
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#2

帖子 枫叶饭团 » 2012-04-08 14:05

你不装iptable就没这事了。。。
axxdz
帖子: 581
注册时间: 2006-10-15 11:33

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#3

帖子 axxdz » 2012-04-08 14:33

枫叶饭团 写了:你不装iptable就没这事了。。。
多谢,我查了一下,没有装 iptable
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#4

帖子 lilydjwg » 2012-04-09 16:28

axxdz 写了:我在virtualbox里安装了winxp,没设置iptable,就可以通过linux共享上网了啊,
但更我看网上有好多用 linux 共享上网的教程,都要设置 iptalbe 脚本,看得我眼花,
那是咋回事?为什么虚拟机可以直接上啊?多谢
没什么,你看到的大部分应该都是和 void main() 一个类别的。
axxdz
帖子: 581
注册时间: 2006-10-15 11:33

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#5

帖子 axxdz » 2012-04-09 22:41

lilydjwg 写了:
axxdz 写了:我在virtualbox里安装了winxp,没设置iptable,就可以通过linux共享上网了啊,
但更我看网上有好多用 linux 共享上网的教程,都要设置 iptalbe 脚本,看得我眼花,
那是咋回事?为什么虚拟机可以直接上啊?多谢
没什么,你看到的大部分应该都是和 void main() 一个类别的。
不行啊,宿舍里是用集线器共享上网的,之前都是我把网关设置为其他同学的 win7 电脑的IP,这样就能上网了。

今天,拨号之后,宿舍里其他同学的 windows 电脑把网关设置为我的电脑的IP,不能上网。
可是我把自己linux 系统的 virtualbox 里的 windows ,却可以通过 nat 方式上网。
困惑。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#6

帖子 lilydjwg » 2012-04-09 22:56

axxdz 写了:
lilydjwg 写了:
axxdz 写了:我在virtualbox里安装了winxp,没设置iptable,就可以通过linux共享上网了啊,
但更我看网上有好多用 linux 共享上网的教程,都要设置 iptalbe 脚本,看得我眼花,
那是咋回事?为什么虚拟机可以直接上啊?多谢
没什么,你看到的大部分应该都是和 void main() 一个类别的。
不行啊,宿舍里是用集线器共享上网的,之前都是我把网关设置为其他同学的 win7 电脑的IP,这样就能上网了。

今天,拨号之后,宿舍里其他同学的 windows 电脑把网关设置为我的电脑的IP,不能上网。
可是我把自己linux 系统的 virtualbox 里的 windows ,却可以通过 nat 方式上网。
困惑。
NAT 嘛,主机能上虚拟机就能上。
没明白你的网络情况。
axxdz
帖子: 581
注册时间: 2006-10-15 11:33

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#7

帖子 axxdz » 2012-04-09 23:04

lilydjwg 写了:
axxdz 写了:
lilydjwg 写了:
axxdz 写了:我在virtualbox里安装了winxp,没设置iptable,就可以通过linux共享上网了啊,
但更我看网上有好多用 linux 共享上网的教程,都要设置 iptalbe 脚本,看得我眼花,
那是咋回事?为什么虚拟机可以直接上啊?多谢
没什么,你看到的大部分应该都是和 void main() 一个类别的。
不行啊,宿舍里是用集线器共享上网的,之前都是我把网关设置为其他同学的 win7 电脑的IP,这样就能上网了。

今天,拨号之后,宿舍里其他同学的 windows 电脑把网关设置为我的电脑的IP,不能上网。
可是我把自己linux 系统的 virtualbox 里的 windows ,却可以通过 nat 方式上网。
困惑。
NAT 嘛,主机能上虚拟机就能上。
没明白你的网络情况。
奇怪,虚拟机这么特殊啊,
困惑,
多谢!
axxdz
帖子: 581
注册时间: 2006-10-15 11:33

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#8

帖子 axxdz » 2012-04-09 23:09

怎么知道是桥接还是NAT呢?宿舍是通过集线器共享上网的。
我猜没有使用网桥,那应该就是NAT吧?
可是虚拟机里的电脑能上,同学的电脑却不能通过我的电脑上
axxdz
帖子: 581
注册时间: 2006-10-15 11:33

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#9

帖子 axxdz » 2012-04-10 1:24

虚拟机里的网桥的含义有些不太一样啊,
百科里面说,网桥是连接两个局域网的
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#10

帖子 lilydjwg » 2012-04-10 1:38

axxdz 写了:虚拟机里的网桥的含义有些不太一样啊,
百科里面说,网桥是连接两个局域网的
我猜是这样的:你机器和你虚拟机一个网,你机器和外边一个网。
axxdz
帖子: 581
注册时间: 2006-10-15 11:33

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#11

帖子 axxdz » 2012-04-10 8:40

lilydjwg 写了:
axxdz 写了:虚拟机里的网桥的含义有些不太一样啊,
百科里面说,网桥是连接两个局域网的
我猜是这样的:你机器和你虚拟机一个网,你机器和外边一个网。
是这样的:宿舍里的4台电脑的IP都是192.168.137.* ,掩码是 255.255.255.0 ,如果谁拨号,那么其他电脑就把谁的IP设置为网关。

但是我查了一下虚拟机里的IP,是 10.0.2.5 ,默认网关是 10.0.2.2 ,DHCP服务器是 10.0.2.2 ,
这下真的 :em20 了, 这样设置的话,虚拟机就和我的电脑不在同一个网段了啊,这样的话,没有网桥,数据包竟然能出去?

我查了一下, 10.0.0.0~10.255.255.255 和 192.168.0.0~192.168.255.255 都是局域网的IP地址的范围,
可是虚拟机为什么要设置为 10. 开头的地址, 如果我设置虚拟机地址为和宿舍电脑一样的 192.168.137 开头的地址,就不能连接 Internet ,

我刚才杳看了一下
$ more /proc/sys/net/ipv4/ip_forward
0
转发功能默认是关闭的, 现在我能接受同学的电脑不能通过我的电脑上网了,

可是虚拟机怎么就能连接到 Internet -_-!
axxdz
帖子: 581
注册时间: 2006-10-15 11:33

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#12

帖子 axxdz » 2012-04-10 8:45

:em01
附件
Linux 的转发功能默认是关闭的
Linux 的转发功能默认是关闭的
vbox 的设置窗口的那个 “端口转发”按钮,打开是空的
vbox 的设置窗口的那个 “端口转发”按钮,打开是空的
vbox 的设置,这里看,应该是 NAT 接连方式?
vbox 的设置,这里看,应该是 NAT 接连方式?
guest ,在 virtual box 里面安装的 windows xp ,是通过 dhcp 协议获得 IP 的,
guest ,在 virtual box 里面安装的 windows xp ,是通过 dhcp 协议获得 IP 的,
Host,我的电脑,安装 Arch Linux 的
Host,我的电脑,安装 Arch Linux 的
axxdz
帖子: 581
注册时间: 2006-10-15 11:33

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#13

帖子 axxdz » 2012-04-10 9:00

晕,我执行了echo 1 > /proc/sys/net/ipv4/ip_forward这个命令,同学的电脑还是不能通过我的电脑上网。
头像
xjpvictor
帖子: 2837
注册时间: 2007-08-22 15:55
系统: Archlinux
来自: 新加坡
联系:

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#14

帖子 xjpvictor » 2012-04-10 10:36

我是这么理解的,错了轻点拍砖。。
你同学要通过你电脑上网的话还是要用iptables的,因为总要有个软件来转发包的
虚拟机不一样,虚拟机的软件模拟一个网卡出来给虚拟机用,对于主机来说不存在转发包的问题,相当于虚拟机的软件在上网,跟浏览器差不多。
Entschuldigung. Ich habe keine ahnung.
Secure with PGP: gpg --recv-keys 0x68b6e3d8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8
Towards A Sustainable Earth: Print Only When Necessary
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 用 linux 共享上网还要设置 iptable 是咋回事,为什么有些情况不用?

#15

帖子 lilydjwg » 2012-04-10 15:06

xjpvictor 写了:我是这么理解的,错了轻点拍砖。。
你同学要通过你电脑上网的话还是要用iptables的,因为总要有个软件来转发包的
虚拟机不一样,虚拟机的软件模拟一个网卡出来给虚拟机用,对于主机来说不存在转发包的问题,相当于虚拟机的软件在上网,跟浏览器差不多。
需要 NAT 转发,用这个命令就可以了:

代码: 全选

iptables -t nat -A POSTROUTING -j MASQUERADE
虚拟机的网卡有多种。host only 的就相当于那些同学的,它们能访问你的机器,但是你不开 NAT 转发的话不能访问外网。nat 模式的网卡是虚拟机软件(而不是 iptables)完成了这个功能。
回复