这里简称真实的外部电脑为主机。当虚拟机NAT模式上网时(区别于桥接上网,桥接上网的话,主机和虚拟机可以互访),虚拟机是可以访问主机的,但是由于NAT机制,导致主机不能访问虚拟机,那么如何让主机上的xshell能够连接虚拟机呢?
1. 这里可以考虑使用虚拟机的"端口转发"功能(本人的虚拟机为virtual ubuntu,且此时本人虚拟机已经可以上网)。在虚拟机管理界面,设置-->网络-->高级-->端口转发,添加一条规则: 名称可以随意些,比如1; 协议选择"tcp" ;主机IP,即主机的IP,如192.168.46.33;主机端口,在1025-65535之间随意选一个,如10088;子系统IP填写虚拟机的网卡IP; 子系统端口填写22,保存;
2. 虚拟机上安装ssh服务。sudo apt install ssh
3. 主机上安装xshell 5, 新建连接时,"主机"填写主机的IP,即上述的192.168.46.33,"端口"填写主机端口,即上述的10086,点击连接(会提示输入虚拟机的用户名和密码);此时即可连接成功;
补充,若虚拟机为桥接模式,则不必使用端口转发功能,而是直接用xshell连接虚拟机,此时新建连接时,"主机"填写虚拟机的IP,"端口"填写22,点击连接(也会提示输入虚拟机的用户名和密码),即可连接成功。