В нашей локальной сети колледжа много компьютеров с локальными IP-адресами, и есть шлюз или сервер, который отправляет и получает трафик, и у него есть статический IP-адрес. Поэтому, когда я нахожусь вне этой сети и хочу получить доступ к своим компьютерам в этой сети, я знаю их MAC-адреса и их локальные IP-адреса в этой сети, а также статический реальный IP-адрес этой сети.
У меня Ubuntu на системах. Я могу включить системы локально, но я также хочу знать:
- Как это сделать через Интернет?
- Как вообще пинговать систему в этой сети?
- Как сделать переадресацию портов в этой ситуации? Или есть ли какой-то способ, при котором не придется переадресовывать порты в маршрутизаторах?
Я пыталсяэтотно это не работает!
решение1
Волшебный пакет, отправленный с помощью Wake-On-LAN,не передается через интернет. Вам необходимо отправить этот пакет с одного из компьютеров в локальной сети, например, через удаленный вход.
Маршрутизатор или шлюз в локальной сети вашего университета, похоже, делаетНАТ. Если у вас нет административного доступа к шлюзу (например, для настройки переадресации портов) или вы не можете войти в одну из машин в локальной сети, получить доступ к машине за NAT невозможно.
Вы можете обойти NAT, если сеть использует IPv6, поскольку NAT в IPv6 обычно не используется (и не должен). Но это все равно не поможет вам отправить волшебный пакет.
решение2
Вам понадобится подключиться к шлюзу по SSH, откуда, если ваши сетевые карты поддерживают эту функцию, вы сможете включать свои машины.
Во-первых, убедитесь, что ваши сетевые карты поддерживают wakeonlan. С целевой машины запустите
sudo aptitude install ethtool
sudo ethtool eth0
Если вывод ethtool
содержит строку типа Supports Wake-on: g
, все должно быть в порядке. Теперь настройте машину, чтобы разрешить это:
sudo nano /usr/bin/wakewol
Добавьте эти строки в только что созданный файл:
#!/bin/bash
ethtool -s eth0 wol g
Сохраните файл и запустите sudo chmod 755 wakewol
, чтобы сделать его исполняемым. Теперь запустите
sudo nano /etc/network/interfaces
и добавьте эту строку в конец файла:
post-down /usr/bin/wakewol
Теперь ваша машина должна поддерживать wakeonlan. Однако, нет способа сделать это без предварительного входа на сервер шлюза. Что-то вроде этого:
rana@local $ ssh rana@gateway
rana@gateway $ wakeonlan 01:02:03:04:05:06
Просто измените 01:02:03:04:05:06
на фактический MAC-адрес машины, которую вы хотите включить. Это предполагает, что wakeonlan
он уже установлен на сервере шлюза.
Это можно еще больше упростить, передав wakeonlan
команду для ssh
выполнения на шлюзе:
ssh rana@gateway wakeonlan 01:02:03:04:05:06