从外网访问家里虚拟机的两种方法
起因
在公司,当我不想干的时候就想着跑路,但是自己又太菜了(饭碗要紧),所以想通过ssh登录到自己的家里一台linux上,去敲一敲 linux命令,sql命令,docker什么的学习一下,正好家里刚装了宽带,看到联通的光猫可以搞虚拟主机,于是就有了这个这个水文(_)
一、通过虚拟主机的方式
1.这种方式前提是需要宽带运营商提供公网IP,直接给宽带客服打电话,说家里要装摄像头,需要公网IP就行。我自己给北京联通客服打电话,联通很给力,直接就给了公网IP。
怎么看自己的ip是不是公网IP呢?简单来说就是,你登录路由器,记录好路由器的wan口ip。然后http://www.ip138.com在这个网站上查询你的IP,若路由器的wan IP和这个一样,则证明是公网IP, 如果不一样,那么你的宽带IP就是大内网IP。
- 一般来说,对于家庭小白来说,我们一般用路由器的WAN口接光猫。但这种情况会导致,192.168.1.X 这种后台管理的IP会被占用,就有可能登录不上去光猫后台 和 路由器后台的其中一个。 在这里我们将路由器的LAN口接入到光猫 (放心吧,还是有网的)
假设你已经完成了前2步
- 首先我在家里的Windows上,启动VMware,然后 VMware 启动了一个centos7虚拟机。然后配置好
centos和我Windows的宿主机 互相ping通。将虚拟机的22端口打开,保证宿主机通过ssh也可以访问centos 这个网上教程一堆,就不在这里啰嗦了
-
宿主机和虚拟机互通后,接下来就是要搞光猫的配置了了。其实我们用到的技术就是DNAT。
一句话:就是我从外网访问我家里Windows的22端口,通过配置DNAT,将地址转发到centos7的22端口。
我的配置如图:
- 配置好之后,用手机上下载一个ssh工具,比如termius,用手机流量试着ssh连接一下。IP是公网IP,端口是22。输入centos的用户名和密码,就一般连进去了。
值得注意的是,运营商的公网IP毕竟有可能会变化的,所以如果要折腾的话,可以去网上看看DDNS教程来解决这个问题。 可以参考这个链接
DDNS简单教程
二、通过tailscale
这是一款神器,简单来说,这个软件是通过vpn技术进行组网,可以将你的不同IP的不同设备,都形成一个局域网来互通。 而且支持android,ios,mac,Windows,贼猛 点我进官网瞅瞅
1.装好tailscale后,即可进行登录。我这里通过github账号登录。
macOS这个是我在公司登录的,电脑启动和登录tailscale后,就变成了connected。 linux是我在家里的虚拟机上启动且登录的设备,也是connected。
这种状态下,我去ping 我这个家里的设备就是通的
然后直接 ssh root@100.100.x.x 登录就完事了
冲就完了,不懂你找我
我的博客有分享更多好玩的计算机知识,欢迎访问 vwo50博客站 .