Fetch

fetch использует команда pkg_add для скачивания пакетов их интернета.

fetch -ApRrv -o vnc-4_1_3-unixsrc.tar.gz 'http://www.realvnc.com/cgi-bin/download.cgi?product=free4/src/unix&acceptLicense=1&haveDetails=1&filetype=tar_gz'

Скачать по ссылке и сохранить под новым именем fetch -o kuskus.jpg http://www.moreno.marzolla.name/software/scan_to_pdf/raw_page.jpg

Работа с FTP
По умолчанию для ftp-протокола работает в активном режиме. Для пассивного режима нужно ключ -p использовать. но во FreeBSD изначально в файле /etc/login.conf, где выставлена переменная FTP_PASSIVE_MODE=YES Соответственно, все работает всегда в пассивной режиме.

Если ее нет или она выставлена в no, то будет активный режим, другие значения переменной - или ключ -p, то пассивный.

 default:\ :passwd_format=md5:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\ 

узнать про другие переменные окружения, влияющие работу fetch, можно man 3 fetch

Как проверить режим


 * Посмотмотреть netstat когда качается файл длинный
 * случайный порт на удаленном фтп в дополнение к соединению случайный порт локальный - 21 = пассивный FTP
 * 20 порт на удаленной фтп + соединение на удаленный 21 порт - активный режим

Настройки ipfw

fetch -vvv ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/zsh.tbz  <<< 200 Switching to Binary mode. binding data socket >>> PORT 192,168,5,11,254,152 <<< 500 Illegal PORT command. fetch: ftp://ftp.freebsd.org/zsh.tbz: Syntax error, command unrecognized 

Если не удается установить соединение, то появится странное сообщение Syntax error, command unrecognized

Работа в пассивном режиме  <<< 200 Switching to Binary mode. setting passive mode >>> PASV <<< 227 Entering Passive Mode (204,152,184,73,130,144). opening data connection initiating transfer >>> RETR zsh.tbz 