歡迎您光臨本站 註冊首頁

關於在通過virtualbox虛擬的xp中運行的代理軟體上網的問題

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

關於在通過virtualbox虛擬的xp中運行的代理軟體上網的問題

我是教育網用戶,之前一直用xp,由於要上外網,所以買了個付費的代理
現在因為工作需要要遷移到linux下面,但是那個代理軟體沒有Linux版

我起初想通過在linux中用virtualbox虛擬一個xp,然後再這個虛擬機中運行這個代理軟體,再通過將linux的代理地址設置為虛擬機來實現上外網

但是virtualbox本身提供的虛擬機與宿主機通信的方式不是很多,用nat方式的話宿主機連接不到虛擬機,不過在這種方式下虛擬機可以運行代理軟體

我按照網路上的教程設置了橋接的方式,但是設置完之後,不知道為什麼,虛擬機上不了網了

可能是我設置得有問題

我現在上網是通過一個固定ip上網的,需要制定網關和dns

在橋接的方式中,我把虛擬機的ip設置為同一個網段的,網關與dns則與宿主機一樣

請問這種情況怎麼解決?或者說通過虛擬機中的代理軟體上外網這種想法是否可行?

謝謝!
《解決方案》

回復 #1 chenqingzhi 的帖子

你的linux host主機是ubuntu么
可以參考下面的設置
假設Host系統是Ubuntu 7.04,Guest系統是CentOS 5.0,其他Linux類系統的配置應該與此類似。
        首先確保安裝了網橋工具(bridge-utils)和用戶模式Linux工具(uml-utilities),如果沒有可運行如下命令安裝:

        # apt-get install bridge-utils uml-utilities

        並確保普通用戶可訪問虛擬網卡設備,

        # chmod 0666 /dev/net/tun

        1. NAT方式

        VirtualBox軟體在內部虛擬出NAT網路,該網路在Host系統不可見,更不可配置,Guest系統設置DHCP方式獲取網路地址,即可直接訪問Host網路。

        需要注意的是啟動Guest系統之前必須確保網路是連通的,否則Guest系統起來后無法訪問Host系統後來連通的網路,比如ADSL撥號上網。

        2. 路由方式

        首先給Host系統創建一塊虛擬網卡,

        # tunctl -t vb0 -u marchday

        網卡的名稱是vb0,授權使用的用戶是marchday。

        然後創建Guest,指定Host Interface,並指定Host Interface Name為vb0,即上面我們創建的虛擬網卡。Guest系統啟動后其網卡相當於和vb0相連,然後我們就可以分別配置Host和Guest的網卡,使其 可相互連通,並使Guest系統訪問外部網路。

        需要注意的是一塊虛擬網卡同時只能連接一個Guest系統,如果你同時啟動了好幾個Guest系統,需要為每個Guest創建虛擬網卡。

        3. 橋接方式

        網橋工作在TCP/IP的第二層,數據鏈路層。它只能感知MAC地址,對IP及以上層是無法感知的。你可以把網橋想象成交換機,一般情況下有兩個 口,數據在兩個口之間轉發,Linux下的橋接設備可以加入很多介面,真正地像一個多口的交換機,而且還支持STP( spanning tree protocol )。

        在Linux下,網橋介面和第一個加入的介面MAC地址保持一致。

        這裡我們考慮兩種結構的網路拓撲。

3.1 Guest系統的網卡直接和公司區域網相連

        假設 Host系統的 eth0 和公司區域網相連,通過dhcp獲取IP地址,並通過區域網接入Internet。在這種網路拓撲下,Guest系統的網卡相當於直接接入公司的區域網,這種接入是通過橋接實現的,我們看看怎麼做。

        添加虛擬網卡介面
        # tunctl -t vb01 -u marchday
        添加網橋設備介面
        # brctl addbr br0
        把物理網卡eth0配置為promisc模式
        # ifconfig eth0 0.0.0.0 promisc
        把物理網卡eth0加入網橋
        # brctl addif br0 eth0
        獲取網橋設備的IP地址
        # dhclient br0
        把虛擬網卡加入網橋
        # brctl addif br0 vb01
        激活虛擬網卡
        # ifconfig vb01 up

        這是最快捷的虛擬機上網方式,啟動虛擬機就跟啟動區域網的一台物理機器一樣,馬上就可以獲取IP地址上網。

        3.2 Guest系統的網卡和網橋設備相連,配置路由接入區域網

        有時候你並不想把虛擬機暴露給區域網,可以把若干台虛擬機加入某個網橋,通過網橋介面配置路由和區域網連接。

        添加虛擬網卡介面
        # tunctl -t vb01 -u marchday
        添加網橋設備介面
        # brctl addbr br0
        配置網橋的IP地址
        # ifconfig br0 10.0.0.1 netmask 255.255.255.0
        添加主機到虛擬機的路由
        # route add -net 10.0.0.0/24 dev br0
        把虛擬網卡加入網橋
        # brctl addif br0 vb01
        激活虛擬網卡
        # ifconfig vb01 up

        啟動虛擬機后,配置Guest系統的網卡與br0網段一致,就可以和Host系統通信了,如要上網還的配置NAT。

        INTIF="br0"
        EXTIF="eth0"
        echo 1 > /proc/sys/net/ipv4/ip_forward

        # clear existing iptable rules, set a default policy
        iptables -P INPUT ACCEPT
        iptables -F INPUT
        iptables -P OUTPUT ACCEPT
        iptables -F OUTPUT
        iptables -P FORWARD DROP
        iptables -F FORWARD
        iptables -t nat -F

        # set forwarding and nat rules
        iptables -A FORWARD -i $EXTIF -o $INTIF -j ACCEPT
        iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
        iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

        加入網橋的Host介面沒必要配置IP地址,當然配置也沒錯,不過是多餘的,浪費。

        通過網橋和VirtualBox可實現複雜的網路拓撲,以後做相關實驗時再玩玩。

[火星人 ] 關於在通過virtualbox虛擬的xp中運行的代理軟體上網的問題已經有835次圍觀

http://coctec.com/docs/service/show-post-6878.html