我有一台在Windows 7上运行的Ubuntu虚拟机。如何设置让我可以通过SSH从外部访问web服务器?
我找到了步骤(在VirtualBox主机和客户机之间设置SSH访问),能够从我的主机ssh到我的客户机,但仍然存在通过我的路由器访问的问题。
我想我可以在我的Windows机器上安装一个SSH服务器,然后进行多次隧道(虽然我不确定要使用本地、动态等哪些选项,或者如何设置多个隧道?),但有没有办法使虚拟机直接可访问我的路由器,以便我可以直接端口转发到它上面?
我有一台在Windows 7上运行的Ubuntu虚拟机。如何设置让我可以通过SSH从外部访问web服务器?
我找到了步骤(在VirtualBox主机和客户机之间设置SSH访问),能够从我的主机ssh到我的客户机,但仍然存在通过我的路由器访问的问题。
我想我可以在我的Windows机器上安装一个SSH服务器,然后进行多次隧道(虽然我不确定要使用本地、动态等哪些选项,或者如何设置多个隧道?),但有没有办法使虚拟机直接可访问我的路由器,以便我可以直接端口转发到它上面?
登录Linux虚拟机的最佳方式是端口转发。默认情况下,您应该已经有一个使用NAT的接口。然后转到网络设置并单击端口转发按钮。添加一个新的规则。将规则名称设置为“ssh”。在“主机端口”中插入3022,在“虚拟机端口”中插入22。规则的其他所有内容都可以留空。
或者从命令行执行
VBoxManage modifyvm myserver --natpf1 "ssh,tcp,,3022,,22"
其中'myserver'是创建的虚拟机的名称。检查添加的规则:
VBoxManage showvminfo myserver | grep 'Rule'
就这些!请务必不要忘记在虚拟机中安装SSH服务器:
sudo apt-get install openssh-server
要SSH进入客户机VM,请输入:
ssh -p 3022 user@127.0.0.1
其中user
是您在虚拟机中的用户名。
ssh -p 3022 user@127.0.0.1
这是我之前遗漏的一步,后来在另一个网站上找到了它。 - D. Woods保留NAT adapter并添加第二个host-only adapter非常有效,并且对于笔记本电脑至关重要(因为外部网络总是会改变)。
http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests/
请记得在virtualbox中创建一个host-only网络(GUI->设置->网络),否则无法在guest上创建host-only接口。
/etc/network/interfaces
,谢谢! - brokenfootssh
、sftp
等),都需要绕过非标准端口,这样做就像是在跳跃障碍。 - Kirk Wollssh user@VM的IP地址
Start cmd.exe and run ipconfig /all
. You should see lines:
Ethernet adapter VirtualBox Host-Only Network:
...
IPv4 Address. . . . . . . . . . . : 192.168.59.1
Second adapter in guest should also be in 192.168.59.*.
Start VM.
ifconfig -a
。你应该看到e1000g0和e1000g1。我们对e1000g1感兴趣。ifconfig e1000g down
ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
ping 192.168.56.10
# vi /etc/hostname.e1000g1
192.168.56.10 netmask 255.255.255.0
# reboot
检查ssh是否已启用
# svcs -a | grep ssh
online 15:29:57 svc:/network/ssh:default
修改 /etc/ssh/sshd_config,以便存在
PermitRootLogin yes
svcadm restart ssh
来自主机检查它
ssh root@192.168.56.10
列出接口:
ip addr
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
192.168.59.1
,并且您为静态客户机IP指定了192.168.56.10
,则此方法将无效。整个C类子网地址必须完全匹配,因此您必须在客户机中使用类似192.168.59.10
的地址。请注意不要改变原文的意思。 - Quolonel Questions同时,在您的主机上,您可以通过ssh连接到您的虚拟机:
请确保虚拟机中已安装并运行了SSH服务器。
$ 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
还有需要注意的是:
文件 > 主机网络管理器 > 创建
。 - Cirelli94对于Windows主机,您可以:
其他用户提供的答案: 如何通过主机从外部SSH到VirtualBox客户机?
……帮助我完成了从Internet连接到我的家庭计算机的guest虚拟机的任务。您应该能够使用计算机,平板电脑和智能手机(Android,iPhone等)进行连接。以下是一些额外步骤,以防对其他人有所帮助:
这是我的设置的快速图示:
远程设备 ---> INTERNET --> MODEM --> 路由器 --> 主机机器 --> GUEST VM
远程设备 (SSH客户端) ---> PASS THRU DEVICES ---> GUEST VM (SSH服务器)
远程设备 (保留ssh端口3022) ---> INTERNET --> MODEM --> ROUTER (FWD frm:p3022 to:p3022)--> HOST MACHINE (FWD frm:p3022 to:p22) --> GUEST VM (arrive ssh port 22)
对我来说关键是要意识到ALL connections都是通过中介设备从我的远程PC到达家中的guest虚拟机 - 因此需要端口转发!
注意: * 需要SSH客户端请求安全连接和一个运行的SSH服务器来处理安全连接。
我将转发使用上面选择的答案中使用的端口3022。
在需要的地方输入您的IP(家用调制解调器/路由器,主机IP,guest IP等)。所选名称仅为示例-使用或更改。
1.创建到您的调制解调器的IP地址/路由器的外部IP地址上的端口3022的SSH通道。
SSH客户端/设备可能的命令:ssh -p 3022 user-name@home_external_IP
2.端口转发=我们正在从路由器通过连接到主机计算机
还要确保路由器上的防火墙/IPtable规则允许转发端口(如果需要打开)
路由器的Pfwd SCREEN需要输入:AppName: SSH_Fwd,Port_from: 3022,Protocol: both(UDP/TCP),IP_address: hostIP_address,Port_to: 3022,其他内容可以留空
DD-WRT路由器软件资源/信息:
3.主机防火墙:开放端口3022 #以便转发端口可以通过到客户机
主机:如果尚未安装VirtualBox、增强功能和客户机,请先安装它们
配置客户机,然后按照下面的网络部分操作
我使用VirtualBox GUI来设置客户机的网络-比CLI更容易
如果您想使用其他方法,请参考:VirtualBox/manual/ch06.html#natforward
4.一些人建议为客户机使用网络桥接适配器=访问LAN和LAN上的其他计算机。这也会带来增加的安全风险,因为现在您的客户机暴露给了LAN机器,如果防火墙没有正确设置,则可能会暴露给INTERNET黑客。因此,我选择将网络适配器附加到NAT以减少桥接安全风险的曝光。
在客户机上执行以下操作:
另外,根据所使用的平台,有不同的ssh服务器和客户端。
wikipedia/Secure_Shell
wikipedia/Comparison_of_SSH_servers
wikipedia/Comparison_of_SSH_clients
对于Ubuntu用户:
ubuntu社区:SSHOpenSSH/Configuring
ubuntu/community: OpenSSH/Keys
就是这样。如果我犯了错误或想添加任何内容-请随意这样做-我仍然是一个新手。
希望这能帮助某些人。祝好运!
netstat -rn
并找到默认路由目标0.0.0.0的网关地址。假设它是“10.0.2.2”。该“网关”地址是VirtualBox Host虚拟IP之一。ssh -R 2222:localhost:22 10.0.2.2
,其中“10.0.2.2”是VirtualBox服务器的IP地址或您希望进行端口转发的任何其他服务器IP。ssh 10.0.2.2 -p2222
,其中10.0.2.2是步骤1中找到的默认网关/VBHost虚拟IP。如果不是要进行端口转发的VirtualBox主机,则命令为ssh localhost -p2222
。以下是使用putty从主机登录虚拟机中运行的Ubuntu VM的步骤(无需端口转发):
On Virtualbox manager select the vm, click on settings icon. Then go Networks and enable two adaptors as below:
Start the ubuntu vm.
Edit the file '/etc/network/interfaces' as below and save it:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
Restart the VM.
Login to the VM and run below command to check the IP allocated to eth1:
ifconfig
Use this IP to open putty session for the VM.