In corporate environment behind firewall like BlueCoat Firewall it's significantly more difficult to figure out how to make FTP work than e.g.: HTTP. BlueCoat fetches files to itself, performs virus scanning and comes back to the user app. For some reason HTTP works OK, while FTP doesn't. I use fetch(1) as my FTP agent. I use pkg_add -rv git. It gets stuck after passive freebsd_x64# echo $ftp_proxy ftp://proxy:21 with http:// it works seamlessly: To lover the cost for making FreeBSD work behind the firewall, I sugegst we use: PACKAGEROOT http://ftp.freebsd.org Fix: We ship with PACKAGEROOT set to http://... to make firewall-related problems less visible. How-To-Repeat: freebsd_x64# pkg_add -vr git scheme: [ftp] user: [] password: [] host: [ftp.freebsd.org] port: [0] document: [/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/git.tbz] scheme: [ftp] user: [] password: [] host: [proxy] port: [0] document: [/] ---> proxy:21 looking up proxy connecting to proxy:21 <<< 220 Blue Coat FTP Service >>> USER anonymous@ftp.freebsd.org <<< 331 Please specify the password. >>> PASS wkoszek@freebsd_x64 <<< 230 Login successful. >>> PWD <<< 257 "/" >>> CWD pub/FreeBSD/ports/amd64/packages-9.1-release/Latest <<< 250 CWD command successful. >>> MODE S <<< 200 Command okay. >>> TYPE I <<< 200 Command okay. setting passive mode >>> PASV [stuck]