Если бы я хотел направить определенный IP-адрес в шлюз по умолчанию, могу ли я сделать это как с помощью маршрутизации в командной строке Windows, так и с помощью файла hosts?
Есть ли разница?
Спасибо!
Если бы я хотел направить определенный IP-адрес в шлюз по умолчанию, могу ли я сделать это как с помощью маршрутизации в командной строке Windows, так и с помощью файла hosts?
Есть ли разница?
Спасибо!
Функции команд файла и маршрута HOSTS
отличаются друг от друга, и одну нельзя использовать для выполнения того, что делает другая.
Файл HOSTS
позволяет сопоставить конкретное имя хоста, например www.google.com, с конкретным IP-адресом. Команда route позволяет указать, какой шлюз использовать при попытке достичь определенного IP-адреса (или, точнее, определенной сети).
В вашем случае вы захотите использовать команду route, а не файл HOSTS
.
Стоит отметить, что все IP-адреса, которых нет в вашей локальной подсети, автоматически маршрутизируются через шлюз по умолчанию. Вам не нужно вручную добавлять маршрут для этого.
направить определенный 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
для той же цели, что и настройка шлюза по умолчанию.
Файл hosts используется для сопоставления имени хоста (например, localhost или superuser.com) с IP-адресом. Он включает в себя DNS, а не маршрутизацию - поэтому вы не можете использовать файл hosts.
Однако я не могу говорить конкретно о том, как использовать статический маршрут для выполнения того, что вы хотите сделать.