我的家庭网络上运行着主机alpha.local
和beta.local
,网络由一个(非常)简单的无线路由器管理。我可以使用例如ssh alpha
或来访问服务器http://beta.local
。我想在每个服务器上安装服务,以便可以通过子域访问它们,例如http://sub1.alpha.local
和http://sub2.alpha.local
。
是否可以做到这一点,例如使用 avahi?
答案1
只需运行此命令:
sudo nano /etc/hosts
然后添加网络中的所有机器,也适用于 Windows 机器:
192.168.0.2 alpha.local sub1.alpha.local
192.168.0.3 beta.local sub2.beta.local
之后你应该在 nginx 或 apache 配置文件中添加 sub1.alpha.local 和 sub2.beta.local 别名
答案2
从设置中我了解到您的网络中没有 DNS 服务器可以解析名称sub1.alpha.local
到其 IP 地址。
因此,通常的解决方法是手动配置文件中的 IP,/etc/hosts
例如
192.168.1.101 sub1 sub1.alpha sub1.alpha.local
如果你的路由器有 DHCP 功能,你可以进入你的路由器并手动设置服务器的 MAC 地址或硬件地址alpha
以分配 IP 地址192.168.1.101
您可以使用以下命令找到机器的 MAC 地址ifconfig
:
$ ifconfig enp4s0:标志=4163 mtu 1500 inet 192.168.10.115 网络掩码 255.255.255.0 广播 192.168.10.255 inet6 fe80::16da:e9ff:fe96:343e 前缀长度 64 范围 ID 0x20 ether 14:da:e9:96:34:3e txqueuelen 1000(以太网) RX 数据包 222436 字节 52837578 (50.3 MiB) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 55928 字节 7339677 (6.9 MiB) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0 lo:标志=73 mtu 65536 inet 127.0.0.1 网络掩码 255.0.0.0 inet6 ::1 前缀长度 128 范围 ID 0x10 loop txqueuelen 0(本地环回) RX 数据包 529 字节 15607 (15.2 KiB) RX 错误 0 丢失 0 超限 0 帧 0 TX 数据包 529 字节 15607 (15.2 KiB) TX 错误 0 丢失 0 超限 0 载波 0 冲突 0
这将是价值
ether 14:da:e9:96:34:3e
答案3
最好使用技巧来做到这一点:在目录示例中创建一个符号链接(在配置中启用如下,即 apache):/var/www/html/mysite --> 如果您输入主目录 /var/www/html/subdomain/ 的 IP,您将获得此信息 --> 这就是您想要的,然后将符号链接复制到 .../subdomain/mysite/ 然后您就可以访问它:http://192.168.XXX.XXX/子域名/这会起到作用。
我在家里就是这么做的,效果很好:)