Если тебе ftp нужен только чтобы заливать файлы на web-сервер, то используй winscp или другой scp клиент подключаясь по протоколу sftp (ssh). В Linux в gnome / cinnamon в достаточно прописать в адресной строке sftp://server/ или sshfs://server/, будут запрошены логин и пароль и ты получишь доступ к директории на сервере.
Чтобы попадать сразу в нужную директорию укажи пользователю переменную HOME на неё.
По поводу sftp:// и sshfs:// могу немного ошибаться, погугли.
Руководства, которые выкладываются на указанном тобой сайте с ошибками и видно, что те, кто готовят материал для сайта не понимаю то, о чём пишут.
В общем, это плохой сайт с руководствами. Советую тебе с него ничего не использовать.
Не только чтобы заливать,
Ну можешь ещё и скачивать.
Попробуй протокод scp (sftp) и если тебя он не будет устраивать, то пробуй настраивать по официальной документации Debian: https://wiki.debian.org/vsftpd
Если у тебя не получится, то приводи команды которые ты вводил, какие изменения конфигурационных файлов делал и логи vsftpd.
У всех дистрибутивов есть официальная документация и в первую очередь используй её, а не руководства с сайта, тем более выбранный тобой сайт вообще стоит обходить стороной.
Я вернул назад vsftpd.conf, но -bash ftp: команда не найдена.
Тебе нужно установить пакет с ftp клиентом. И он, как ни странно называется ftp
apt install ftp
Не понимаю как может быть связано содержимое конфигурационного файла vsftpd и наличие клиента ftp.
Если sftp localhost, заходит, если sftp domain, пишет connect closed bu IP port 22
Проверь для начала, что указанный тобой домен разрешается в IP адрес на той машине с которой ты пытаешься подключиться.
Если нет - то проблема в настройках разрешения доменных имён на этой машине или в том, что ты не прописал домен везде где нужно.
Установи пакет net-tools
apt install net-tools
И удостоверься, что sshd слушает 22 порт на всех IP адресах
netstat -tulpn | grep ssh
Удостоверься, что в настройках пакетного фильтра нет ограничений на подключение
iptables-save
Если ничего не выводится или такой команды нет, то ты не ставил iptables и ничего в нём не менял.
Но сейчас на лицо, что машина с которой ты подключаешься по доменному имени не может разрешить доменное имя.
Можешь даже просто проверить
ping domain
Можешь так же установить пакет bind9-dnsutils и проверить разрешение доменного имени
apt install bind9-dnsutils
nslookup domain
Как только с этим разберёшься всё заработает.
Ну и я тебе советую почитать как работает интернет, что такое доменное имя, что такое DNS сервер, как работает разрешение доменных имён, зачем нужен файл /etc/hosts.
Также, если твой сайт находится на одной машине, а во внешнем мире он доступе с другой машины на которой настроен проброс порта 80 / 443 на твою машину, то тебе нужно также настроить проброс порта 22 на твою машину или другого порта на 22 порт твоей машины.
В этом случае указывай при подключении по sftp номер этого порта.
В общем, проверяй и если что-то не будет получаться давай данные, как у тебя в первую очередь всё настроено.
Если ты подключаешься по sftp с самого же сервере, то на нём должен быть указанный в nslookup IP адрес.
А если на нём нет IP адреса, то подключиться так по доменному имени с самого сервера не получится. И у тебя видимо есть проброс портов.
В этом случае в файле /etc/hosts нужно сделать привязку этого доменного имени к IP адресу 127.0.0.1 и тогда с самого сервера тоже будет подключаться по доменному имени.
Но ты это пока не осмысливай сильно. А ответь на вопросы:
Ты подключаешься по sftp с самого сервера или нет?
На сервере самом есть указанный в выводе nslookup domain IP адрес или нет, смотри вывод ip a?
В виду того, что ты плохо понимаешь что делаешь и ты плохо объяснил схему подключения, то нарисуй схему, можешь от руки на листе и выложить фотографию.
Ну уточни что ты понимаешь под сервером.
В выводе nslookup domain у тебя есть IP адрес 46.173.X.Y. На системе где ты вызываешь команду sftp domain у тебя IP адрес 192.168.0.177.
На схеме нарисуй, что и где находится, по каким IP адресам доступно, откуда и куда ты хочешь подключаться.
Без этого дальше ничего не получится, а если и получится, то в виду твоего непонимания в целом ты можешь себе навредить.
Вот всё же нарисуй схему подключения всего, а потом можно думать дальше.
это не возможно потому, что я не понимаю принцип действий работы проброса, по крайней мере сейчас, надо вспоминать, что к чему, может сегодня вечером получится
Смотри, если тебе нужно подключаться по sftp по доменному имени только с самого сервера на себя же, то записи в /etc/hosts, если ты её всё же правильно сделал достаточно. Правильно - значит доменное имя с самого сервера пингуется по адресу 127.0.0.1 или другому из сети 127.0.0.0/8 в зависимости от того, что ты написал.
Для подключения с других компьютеров в твоей локальной сети тебе нужно прописать соответствие доменного имени IP адресу 192.168.0.177 в файле /etc/hosts на каждом компьютере, либо если это возможно на DNS сервере 192.168.0.1.
В Linux и Windows файл hosts есть.
Для доступа из внешнего мира нужно делать проброс портов.
Но тут есть нюансы безопасности, потому,что ssh это в первую очередь удалённая командная строка. И в случае предоставления доступа из вне с простым паролем может быть не безопасно. А лучше включить авторизацию только по ключам, без ввода пароля.
Поэтому пока ты не составишь схему, а это значит не составишь у себя в голове точную картину чего ты именно хочешь и как это работает двигаться дальше в целом нельзя.
Запретить входить по ssh можно через указание /bin/false как оболочки пользователя, но в любом случае нужно разобраться как у тебя все настроено.
И твоих коментариев о том откуда ты хочешь подключаться нет, как и ответов получилось ли сделать то, что описано выше и подключиться по sftp по доменному имени тоже.
У меня проброшен был этот адрес 192.168.0.177 (компа) на роутере изначально, из мануалов я понял, что этого достаточно для установки на него vsftp и спокойно подключится и так и сяк.
FTP - это такой ипучий протокол, что ему проброса одного порта мало. Ему еще нужно диапазон портов для самой передачи данных пробросить (и настроить на сервере, какой).
Сделай, как умные дяди советуют. Но для начала научись читать документацию и попробуй составить себе цельную картину мира. Начинать можно с модели OSI, потом на TCP/IP посмотреть.
Есть такой лабстенд для изучения цисок (а заодно и сетей вообще), называется GNS3. Можно его поставить, погуглить лабы и играться.
А пользователей как перечислять?
$USER1=testuser1, testuser2,testuser3
$USER2=testuser10, testuser20,testuser30
user_sub_token=$USER1
local_root=/home/$USER1/
user_sub_token=$USER2
local_root=/var/www/$USER2/
Или как? Я вроде с local_root переборщил. Мне просто всех пользователей для одной папки назначать не надо, а типо разные пользователи разные папки. Сейчас правило действует каждый пользователь голова своей именной папки