从外网访问家里虚拟机的两种方法

起因
在公司,当我不想干的时候就想着跑路,但是自己又太菜了(饭碗要紧),所以想通过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口接入到光猫 (放心吧,还是有网的,当然你可能想这是啥玩意儿,那好,总之保证你的虚拟机IP 和 宿主机互通就行,这个步骤可省略)
假设你已经完成了前2步

首先我在家里的Windows上,启动VMware,然后 VMware 启动了一个centos7虚拟机。然后配置好 centos和我Windows的宿主机 互相ping通。将虚拟机的22端口打开,保证宿主机通过ssh也可以访问centos 这个网上教程一堆,就不在这里啰嗦了
20240923132423344

这写了,又仿佛没写
宿主机和虚拟机互通后,接下来就是要搞光猫的配置了了。其实我们用到的技术就是DNAT。

一句话:就是我从外网访问我家里Windows的22端口,通过配置DNAT,将地址转发到centos7的22端口。

我的配置如图:
20240923132424875

大佬们凑合看,发这篇文章时候不在家。没留好截图
配置好之后,用手机上下载一个ssh工具,比如termius,用手机流量试着ssh连接一下。IP是公网IP,端口是22。输入centos的用户名和密码,就一般连进去了。
值得注意的是,运营商的公网IP毕竟有可能会变化的,所以如果要折腾的话,可以去网上看看DDNS教程来解决这个问题

20240923132425455

20240923132426740

 

有更简单的办法吗。听得烦了猴哥听了都很烦
二、通过tailscale
这是一款神器,简单来说,这个软件是通过vpn技术进行组网,可以将你的不同IP的不同设备,都形成一个局域网来互通。而且支持android,ios,mac,Windows,贼猛 点我进官网瞅瞅

装好tailscale后,即可进行登录。我这里通过github账号登录。macOS这个是我在公司登录的,电脑启动和登录tailscale后,就变成了connected。linux是我在家里的虚拟机上启动且登录的设备,也是connected。

20240923132427862

这种状态下,我去ping 我这个家里的设备就是通的

20240923132428103

好像打码没打全啊,不重要
然后直接 ssh root@100.100.x.x 登录就完事了

冲就完了,不懂你找我

阅读剩余
THE END