Команда su запускает другую оболочку от имени пользователя root (или кого угодно, если вы введете имя пользователя и правильный пароль). Эта оболочка получает все обычные переменные среды, которые, конечно, включают переменные HTTP_PROXY и FTP_PROXY. Таким образом, это работает.
Команда sudo УДАЛЯЕТ ВСЕ переменные среды, кроме специально выбранного подмножества ... которое, конечно, НЕ включает переменные HTTP_PROXY & FTP_PROXY, поэтому ваши команды не выполняются.
Вы можете заставить sudo сохранять переменные * _PROXY, отредактировав файл конфигурации sudoers с помощью команды visudo (конечно).
Добавление следующего заставит sudo сохранить значения HTTP_PROXY & FTP_PROXY:
Defaults env_keep += "http_proxy ftp_proxy https_proxy HTTP_PROXY FTP_PROXY HTTPS_PROXY"
По совпадению, если вы добавите DISPLAY & HOME в этот список, вы также можете использовать программы с графическим интерфейсом sudo (для подключения им нужна переменная DISPLAY)
Defaults env_keep += "DISPLAY HOME"
Вы даже можете просто добавить эти две строки, вот так. (Ключ += здесь) Не забудьте добавить эти строки в конец файла, так как в первых нескольких строках обычно устанавливается переменная ' env_keep ' с прямой ' = ', которая стирает любое предыдущее значение.