Это не точно nslookup
конкретный, но должен работать в общем случае (если у Вас есть корневой доступ на Вашей машине). Это использует сетевой стек IP, чтобы удостовериться, что Вы используете интерфейс вместо другого. Прежде, чем назвать nslookup, просто добавьте маршрут к своим IP-адресам сервера DNS через определенный сетевой интерфейс.
Если у Вас есть 2 интерфейса (eth0
и eth1
), то, что Ваш шлюз по умолчанию через eth0
(192.168.0.1), и что Вы хотите запросить Google DNS (8.8.8.8) через eth1
где Ваш путь к Интернету 192.168.1.1, Вы могли сделать:
ip route add 8.8.8.8/32 via 192.168.1.1
Добавление dev eth1
к команде не полезно, поскольку должен быть только один путь к 192.168.1.1.
При выполнении необходимо удалить маршрут для восстановления маршрутизации по умолчанию:
ip route del 8.8.8.8/32
Да, в целом .netrc
файл должен просто работать, как Вы описали. Это могло бы становиться заблокированным Вашим клиентом FTP, не поддерживающим его (возможно, это было явно создано без этой активированной опции). Это было бы, вероятно, сделано, так как этот метод хранения имен пользователей/паролей по сути небезопасен и не должен, вероятно, использоваться.
Можно всегда подтверждать то, что приложение делает путем трассировки его с помощью инструмента командной строки, strace
.
$ strace -s 2000 -o ftp.log ftp m
После выполнения этого можно проанализировать файл журнала, ftp.log
видеть если Ваш ftp
клиент пытается считать файл .netrc
. Если это будет работать правильно, то Вы будете видеть этот тип вывода в журнале.
setsockopt(3, SOL_SOCKET, SO_OOBINLINE, [1], 4) = 0
open("/home/saml/.netrc", O_RDONLY) = 4
uname({sys="Linux", node="greeneggs.bubba.net", ...}) = 0
fstat(4, {st_mode=S_IFREG|0600, st_size=47, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4898b85000
read(4, "machine ftp.somedom.org\n\tlogin sam\n\tpassword blah\n", 4096) = 47
fstat(4, {st_mode=S_IFREG|0600, st_size=47, ...}) = 0
read(4, "", 4096) = 0
close(4) = 0
Примечание: В вышеупомянутом я соединяюсь с ftp.somedom.org
как пользователь "sam" использование пароля "вздор". Вы видите, что это читало из моего .netrc
файл.
Если Вы смотрите на ftp
страница справочника там является этим переключателем, это упоминается в моей версии:
-n Restrains ftp from attempting “auto-login” upon initial connection.
If auto-login is enabled, ftp will check the .netrc (see netrc(5))
file in the user's home directory for an entry describing an account
on the remote machine. If no entry exists, ftp will prompt for the
remote machine login name (default is the user identity on the local
machine), and, if necessary, prompt for a password and an account
with which to login.
open host [port]
Establish a connection to the specified host FTP server. An optional
port number may be supplied, in which case, ftp will attempt to
contact an FTP server at that port. If the auto-login option is on
(default), ftp will also attempt to automatically log the user in to
the FTP server (see below).
Я нахожусь на Fedora 19:
$ rpm -qi ftp
Name : ftp
Version : 0.17
Release : 64.fc19
Architecture: x86_64