###写在前面
最近在学习Kamailio,为了测试,用VirtualBox模拟了一台服务器。为了使得客机能够上网、同时主机(客户端)能够访问客机(服务器),需要做一些配置,这就是本文的主要内容。
###环境与版本
- VirtualBox test builds 5.0.3 revision 102467 for Mac OS X
- 主机:Mac OS X 10.10.5
- 客机:Ubuntu 14.04.3 64bit
###详细步骤
1.首先打开VirtualBox菜单,进入Preferences,选择Network标签页,然后新建一个Host-only网络(下图中的vboxnet0)。
2.仍然是Host-only Networks界面,点右侧最下面改锥模样的"Edit host-only network"图标,然后选择DHCP Server标签,会出现下面这样的页面。你可以自己手动设置静态IP,也可以直接点OK让DHCP自动设置IP。
3.点OK回到VirtualBox的主界面,选定客机进入Settings,选择Network标签页。适配器1(Adapter 1)应该保持NAT模式不变。起用适配器2,设置为Host-only Adapter类型,然后下拉列表选择刚刚新建并配置好的Host-only网络。然后点OK完成设置。
4.启动客机,打开terminal,运行sudo ifconfig
,将会有类似于下图的输出,表示主机现在可以通过192.168.56.101
这个IP地址来访问客机。
5.至此,主机应该已经可以访问客机。我们可以在主机的命令行里运行ssh 192.168.56.101
,如果命令行接下来要求输入用户名/密码,则说明配置成功。
###可能遇到的问题
在ssh时如果遇到"Connection refused"反馈,则有三种可能:
####1.客机没有安装SSH服务器
此时运行sudo apt-get install openssh-server
进行安装。
####2.SSH服务器已安装但未启动
可以输入ps -aef | grep sshd
来检查SSH服务器的状态,如果没有运行,则输入netstat sshd
启动。
####3.客机防火墙屏蔽了相关的端口访问
这种情况比较罕见,因为Ubuntu的防火墙默认时未启动的,可以通过sudo ufw status
来确认其状态和规则。
如果防火墙已启动且确实没有打开SSH所需的端口(TCP/22),可以运行下列命令之一来开启该端口(或者其它你所需要的端口)。
sudo ufw allow 22
sudo ufw allow 22/tcp
sudo ufw allow ssh