ssh - virtualbox虛擬機器互連 - virtualbox遠端




如何通過主機從外部連接到VirtualBox guest? (10)

如何為Solaris 10和Ubuntu 16.04執行僅主機網絡(比橋接share )

添加主機專用接口

  1. Virtualbox>文件>首選項>網絡>主機專用網絡>添加
  2. 關機vm。
  3. 虛擬機的設置>網絡。 第一個適配器應該是Nat,第二個僅適用於主機。
  4. 啟動cmd.exe並運行ipconfig /all 。 你應該看到線條:

    Ethernet adapter VirtualBox Host-Only Network:
       ...
       IPv4 Address. . . . . . . . . . . : 192.168.59.1
    

    客人的第二個適配器也應該在192.168.59。*。

  5. 啟動虛擬機。

Solaris 10

  1. 檢查settings ifconfig -a 。 你應該看到e1000g0和e1000g1。 我們對e1000g1感興趣。
  2. ifconfig e1000g down
  3. ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
  4. 從主機檢查此接口是否可達: ping 192.168.56.10

重新啟動時保留這些設置

# vi /etc/hostname.e1000g1
192.168.56.10 netmask 255.255.255.0
# reboot

配置ssh服務( administering )以root身份登錄(不提供建議)

檢查是否啟用了ssh

# svcs -a | grep ssh
online         15:29:57 svc:/network/ssh:default

修改/ etc / ssh / sshd_config這樣就有了

PermitRootLogin yes

重新啟動ssh服務

svcadm restart ssh

從主機檢查它

ssh [email protected]

Ubuntu 16.04

列表界面:

ip addr

您應該會看到三個接口,例如lo,enp0s3和enp0s8。 我們將使用第三個。

編輯/ etc / network / interfaces

auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0

然後sudo ifup enp0s8 。 檢查enp0s8是否有正確的地址。 你應該看到你的IP:

 $ ip addr show enp0s8
 ...
    inet 192.168.56.10/24 brd 192.168.56.255 scope global secondary enp0s8

如果沒有,你可以運行sudo ifdown enp0s8 && sudo ifup enp0s8

https://superuser.com/questions/424083/virtualbox-host-ssh-to-guest/424115#424115

我有一台運行在Windows 7機器上的Ubuntu VM。 我如何設置它以便我可以通過SSH從外部訪問Web服務器?

我發現了一些步驟( 在VirtualBox主機和訪客虛擬機之間設置SSH訪問 ),以便能夠通過我的主機向我的訪客進行ssh訪問,但這仍然使我無法通過我的路由器訪問它。

我想我可以在我的Windows機器上安裝一個SSH服務器,然後隧道幾次(儘管我不能100%確定本地,動態等方面使用什麼或者如何設置多個隧道?),但有沒有辦法讓虛擬機可以直接訪問我的路由器,以便我可以直接轉發到它?


按照以下步驟使用putty(無端口轉發)從主機登錄到在虛擬框中運行的ubuntu VM:

  1. 在Virtualbox管理器上選擇虛擬機,單擊設置圖標。 然後轉到網絡並啟用兩個適配器,如下所示:

    • 適配器1(用於Internet訪問):連接到 - > NAT,高級 - >檢查連接的電纜。
    • 適配器2:連接到 - >僅主機適配器,高級 - >檢查連接的電纜和混雜模式 - >全部允許。
  2. 啟動ubuntu vm。

  3. 以root身份登錄到VM。
  4. 按如下編輯文件'/ etc / network / interfaces'並保存:

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet dhcp
    
  5. 重新啟動虛擬機。

  6. 登錄到VM並運行以下命令來檢查分配給eth1的IP:

    ifconfig
    
  7. 使用此IP為VM打開putty會話。



在安全網絡上,將網絡設置為橋接可能無效。 如果交換機在一個端口上檢測到多個mac,則管理員只能允許每個端口使用一個mac地址,甚至更糟的是阻止該端口。

我認為最好的解決方案是設置額外的網絡接口來處理你想在你的機器上運行的附加服務。 因此,我有一個橋接接口,可以在將筆記本電腦置於家中時進行橋接,並且可以通過網絡上的其他設備進行SSH連接,以及當我想連接到筆記本計算機時從我的筆記本電腦SSH連接到虛擬機的適配器到校園裡的eduroam wifi網絡。


對於Windows主機,您可以:

  1. 在virtualbox管理器中:
    1. 在你的virtualbox管理器中選擇ctrl + G
    2. 然後去網絡面板
    3. 添加一個專用網絡
      1. 確保沒有選擇激活DHCP
  2. 在網絡管理(Windows)
    1. 選擇新創建的僅適用於virtualbox主機的適配器和物理網卡
    2. 右鍵單擊並選擇“創建橋樑”
  3. 請享用

您也可以在網絡設置中使用橋接網絡 。 這將使您的虛擬機與您的機器在一個VLAN中。 所以你可以像這樣ssh進入虛擬機。

ssh user @ IP_OF_VM


為了從主機上ssh到在VirtualBox中運行的Ubuntu VM,您需要為VM設置兩個網絡適配器。

首先,如果還沒有停止虛擬機。

然後選擇虛擬機並單擊VirtualBox工具欄中的設置菜單:

設置適配器1

設置適配器2

(注意:您不需要設置任何端口轉發。)

而已。 一旦建立,你就可以開始你的虛擬機。 在您的VM中,網絡配置如下所示,您也可以訪問Internet:

同樣在你的主機中,你可以SSH到你的虛擬機:

確保SSH服務器已安裝並在VM中運行。

$ ps aux | grep sshd
root 864 0.1 0.5 65512 5392 ? Ss 22:10 0:00 /usr/sbin/sshd -D

如果沒有,請安裝它:

$ sudo apt-get install openssh-server

也供您參考:

  • 我的VirtualBox版本:5.2.6 r120293(Qt5.6.2),2018年
  • 我的Ubuntu版本:Ubuntu 16.04.3 LTS
  • 我的主機:Windows 10

登錄到客戶Linux VirtualBox VM的最佳方式是端口轉發。 默認情況下,您應該已經有一個使用NAT接口。 然後進入網絡設置並點擊端口轉發按鈕。 添加新規則

主機端口3022,訪客端口22,名稱ssh,其他留空。

或從命令行

VBoxManage modifyvm myserver --natpf1 "ssh,tcp,,3022,,22"

其中“myserver”是創建的虛擬機的名稱。 檢查添加的規則:

VBoxManage showvminfo myserver | grep 'Rule'

就這樣! 請確保您不要忘記安裝SSH服務器:

sudo apt-get install openssh-server

要通過SSH訪問來賓虛擬機,請寫下:

ssh -p 3022 [email protected]

user是VM內的用戶名。



SSH從互聯網返回您的家庭/辦公室VirtualBox訪客機器

其他用戶在這裡提供的答案: How to SSH to a VirtualBox guest externally through a host?

...幫助我完成了從互聯網連接到家用電腦的訪客機器的任務。 您應該可以使用電腦,平板電腦和智能手機(android,iPhone等)進行連接。 如果可能會對其他人有所幫助,我還會再添加一些步驟:

以下是我的設置的快速圖表:

  • Remote device ---> INTERNET --> MODEM --> ROUTER --> HOST MACHINE --> GUEST VM

  • Remote device (ssh client) ---> PASS THRU DEVICES ---> GUEST VM (ssh server)

  • Remote device (leave ssh port 3022) ---> INTERNET --> MODEM --> ROUTER (FWD frm:p3022 to:p3022)--> HOST MACHINE (FWD frm:p3022 to:p22) --> GUEST VM (arrive ssh port 22)

對我來說,關鍵是要認識到,所有的連接都是PASSING-THROUGH中介設備從我的遠程PC到我的訪客虛擬機 - 在家裡進行端口轉發!

注意:*需要ssh客戶端請求安全連接並運行ssh服務器來處理安全連接。

  • 我將轉發上面選擇的答案中使用的端口3022。

  • 在需要的地方輸入您的IP(家庭調製解調器/路由器,主機IP,訪客IP等),選擇的名稱僅僅是示例 - 使用或更改。

1.在調製解調器的IP /路由器的外部IP地址上創建ssh隧道到端口3022。

ssh client/device possible commands: ssh -p 3022 [email protected]_external_IP

2.端口轉發=我們正在通過從路由器到主機的連接

  • 還要確保路由器上的防火牆/ IPtable規則允許端口轉發(如果需要,請打開)

  • 路由器的Pfwd SCREEN必需條目:AppName:SSH_Fwd,Port_from:3022,協議:兩者(UDP / TCP),IP_address:hostIP_address,Port_to:3022,其他所有內容可以為空

DD-WRT路由器軟件資源/信息:

3.主機防火牆:打開端口3022 #soso轉發的端口可以傳遞給客戶機

  • 主機:如果尚未完成,請安裝VirtualBox,guest虛擬機和guest虛擬機

  • 配置訪客機器,然後按照下面的網絡部分

  • 我使用VirtualBox GUI來設置訪客的網絡 - 比CLI更容易

  • 如果您想使用其他方法,請參閱: VirtualBox/manual/ch06.html#natforward

4.建議使用網橋適配器來訪問局域網和局域網中的其他機器。 這也增加了安全風險,因為現在,如果防火牆設置不當,您的訪客機器現在已經暴露在局域網機器和可能的INTERNET黑客中。 所以我選擇了連接到NAT的網絡適配器,以減少對橋接安全風險的影響。

在客機上執行以下操作:

  • 訪客機器VirtualBox網絡設置:適配器1:連接到NAT
  • 訪客機器VirtualBox端口轉發規則:名稱:External_SSH,協議:TCP,主機端口:3022,訪客端口22,主機和來賓IP:留空
  • 點擊網絡部分的提前,然後點擊端口轉發輸入規則
  • 訪客機防火牆:打開端口22 #so ssh連接可以進入
  • 來賓機:確保ssh服務器已安裝,配置正確並且正在運行
  • LINUX測試看看ssh服務器是否運行w / command:sudo service ssh status
  • 可以檢查netstat以查看是否連接到來賓計算機上的端口22

也有不同的SSH服務器和客戶端取決於平台使用。

  • wikipedia/Secure_Shell
  • wikipedia/Comparison_of_SSH_servers
  • wikipedia/Comparison_of_SSH_clients

對於Ubuntu用戶:

  • ubuntu community: SSHOpenSSH/Configuring
  • ubuntu/community: OpenSSH/Keys

應該是這樣的。 如果我犯了一個錯誤或想添加任何東西 - 可以自由地這樣做 - 我仍然是一個小菜鳥。

希望這可以幫助某人。 祝你好運!







virtualbox