[VirtualBox] Samba 下 Ubuntu與Win7共享資料夾設定,利用 host-only網路

使用Samba設置Ubuntu有多種方式,像是Guest OS利用橋接方式與Host OS連結,搭配指定同網段IP的方式來做,但這樣的方式會讓所有區網內的使用者都可以連上Guest OS。只是想在Guest OS上寫寫code應該不用昭告天下吧!
所以為了達到讓Guest OS能夠上網,且同時只有Host OS可以用Samba分享透過內部網路存取Guest OS上的資料,要如何達成呢?

以下用VirtualBox下設置為例
Host OS : Win 7 64bit
Guest OS : Ubuntu 12.04.3 LTS(centos設定一樣)

首先設置VirtualBox網路卡設定





介面卡1是VirtualBox的預設使用NAT方式,讓內部虛擬機器的虛擬網路位址轉換至外面網際網路真實位置來上網。讓Guest OS能夠有上網的功能。

然後再設定介面卡2,使用Host-Only的網路卡讓Host OS與Guest OS連結在一起,但並沒有與外面網路連結,因此只有位於此網路內的電腦可以進行通訊。

之後開啟Ubuntu,查詢網路設備狀況
# ifconfig

可以看到除了原本的eth0的NAT網路之外,還多了eth1的host-only網路。

然後設定固定IP,因為host-only預設網段是192.168.56.0,因此IP設定上也要在同一個網段之下。

在/etc/network/interface中加入以下網路設定
# sudo gedit /etc/network/interfaces

auto eth1
iface eth1 inet static
address 192.168.56.77
netmask 255.255.255.0
network 192.168.56.0



接著把Ubuntu重開機。
# sudo reboot

重開之後就可以看到Ubuntu的eth1設定變成上面設定的IP位址了。


接著安裝Samba

# sudo apt-get install samba smbfs smbclient (centos 用#yum install samba)

設定Samba
1.     保留現有配置文件
# sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2.     修改現有的配置文件
# sudo gedit /etc/samba/smb.conf

在最底下加入以下程式碼,因為想要讓整個Ubuntu的硬碟都可以共用,因此路徑上設定是整個目錄,可以根據自己的需求建立想要共用的目錄資料夾。valid users是使用者名稱,這部分要設定與Samba的帳戶名稱一樣。
[Share]
comment = Shared Folder with username and password
path = /
public = yes
writable = yes
read only = no
valid users = brown(設定帳號也可以不用設定)
force directory mode = 777
force create mode = 777
force security mode = 777
force directory security mode = 777
hide dot file = no
create mask = 0777
directory mask = 0777
delete readonly = yes
guest ok = yes
available = yes
browseable = yes

然後到[global]下加入以下程式碼,避免不同OS有編碼的問題

workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936


設置Samba帳號密碼,是從Win7端連線所需要輸入的帳號密碼
# sudo smbpasswd -a brown

測試/etc/samba/smb.conf是否有問題,沒問題的話應該會看到[share]那段程式碼出現在終端機螢幕上。
# sudo testparm

最後重啟Samba,使以上設定生效
# sudo /etc/init.d/smbd restart

接著到Win7端,用ARP看看區網內的IP,可以看到有上下兩個部分,上面的部分是VirtualBox Host-Only的網卡所建立的區網(192.168.56.0),而下面的部分則是Win7對外連結網卡的區網設定(192.168.101.0)。


試試看是否能夠透過Host-Only的網段(192.168.56.0)與Ubuntu(192.168.56.77)連線。
Ping測試結果沒問題,真的連線起來了!

最後到Win7上輸入 \\192.168.56.77來連線Ubuntu。
預設會先跳出windows網域連線認證,請輸入samba設定的帳號密碼


就可以看到分享共用的資料夾。

點進去,且輸入Samba帳號密碼之後,就可以看到Ubuntu上分享的資料了。因為我把整個Ubuntu的資料都共用,因此可以看到整個資料夾的內容。

最後,為了避免每次開機都還要重新輸入一次,用連線到網路磁碟機,把Ubuntu分享資料夾設定在網路磁碟Z:\\


這樣每次電腦開機後都可以看到Samba的網路磁碟機了。

測試Ubuntu上網也沒問題。

留言

這個網誌中的熱門文章

c語言-關於#define用法

PHP教學 - 資料型態(Data Type) - 上

CMD常用網管指令