5

Если бы я хотел направить определенный IP-адрес в шлюз по умолчанию, могу ли я сделать это как с помощью маршрутизации в командной строке Windows, так и с помощью файла hosts?

Есть ли разница?

Спасибо!

3 ответа3

8

Функции команд файла и маршрута HOSTS отличаются друг от друга, и одну нельзя использовать для выполнения того, что делает другая.

Файл HOSTS позволяет сопоставить конкретное имя хоста, например www.google.com, с конкретным IP-адресом. Команда route позволяет указать, какой шлюз использовать при попытке достичь определенного IP-адреса (или, точнее, определенной сети).

В вашем случае вы захотите использовать команду route, а не файл HOSTS .

Стоит отметить, что все IP-адреса, которых нет в вашей локальной подсети, автоматически маршрутизируются через шлюз по умолчанию. Вам не нужно вручную добавлять маршрут для этого.

2

направить определенный IP-адрес на мой шлюз по умолчанию

Вот что означает вышеперечисленное: вы говорите своему стеку TCP/IP, что «определенный IP-адрес» доступен через шлюз по умолчанию.

Таким образом, ваш стек TCP/IP, используемый всеми приложениями в вашей системе, будет отправлять ЛЮБОЙ трафик с этим IP-адресом назначения на ваш шлюз по умолчанию.

Правила маршрутизации не имеют никакого понятия о доменном имени или DNS. Они работают только с IP-адресами и масками подсетей.


Ваш файл hosts используется распознавателем DNS, который может находиться в разных библиотеках /dll вашей системы.

Предполагается, что DNS-распознаватель, который обычно вызывается каждый раз, когда приложение хочет найти IP-адрес доменного имени, сначала ищет в этом файле, чтобы преобразовать доменное имя в IP-адрес. Если его там нет, он запрашивает DNS-сервер.

(Это поведение настраивается в Linux и, вероятно, в Windows - в Linux вы можете указать, чтобы он не обращался к файлу или обращался к файлу вторым, если запрос к DNS-серверу не удался первым).

Если этот поиск DNS не происходит, файл hosts не будет иметь никакого эффекта.

Возвращенный IP-адрес используется только тем приложением, которое его запросило. Правила маршрутизации могут по-прежнему действовать, если приложение действительно отправляет что-то на этот IP-адрес.


Таким образом, вы не можете использовать свой файл hosts для той же цели, что и настройка шлюза по умолчанию.

0

Файл hosts используется для сопоставления имени хоста (например, localhost или superuser.com) с IP-адресом. Он включает в себя DNS, а не маршрутизацию - поэтому вы не можете использовать файл hosts.

Однако я не могу говорить конкретно о том, как использовать статический маршрут для выполнения того, что вы хотите сделать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .