使用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
首先設置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 lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.56.77
netmask 255.255.255.0
network 192.168.56.0
Ubuntu 16.04要用底下指令,因為網路介面不是eth0/eth1
auto lo
iface lo inet loopback
auto enp0s8
iface enp0s8 inet static
address 192.168.56.88
netmask 255.255.255.0
network 192.168.56.0
接著把Ubuntu重開機。
# sudo reboot
接著安裝Samba
# sudo apt-get install samba smbfs smbclient
Ubuntu 14.04版本以上,要用底下指令,因為smbfs被cifs-utils取代掉了
# sudo apt-get install samba cifs-utils smbclient
設定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
Ubuntu 14.04以上的版本不用設定display charset
workgroup = WORKGROUP
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。
就可以看到分享共用的資料夾。
點進去,且輸入Samba帳號密碼之後,就可以看到Ubuntu上分享的資料了。因為我把整個Ubuntu的資料都共用,因此可以看到整個資料夾的內容。
最後,為了避免每次開機都還要重新輸入一次,用連線到網路磁碟機,把Ubuntu分享資料夾設定在網路磁碟Z:\\
這樣每次電腦開機後都可以看到Samba的網路磁碟機了。
測試Ubuntu上網也沒問題。
大功告成~!
沒有留言:
張貼留言