Оставив в стороне вопросы безопасности, я хотел бы подключиться к общему ресурсу SAMBA из дома к серверу (выделенному или VPS, неважно).
Сервер работает отлично. Проблема на стороне клиента. Позвольте мне прояснить: проблема в моем провайдере!
Я могу получить доступ к этим ресурсам даже со своего смартфона, используя 3G. При использовании бесплатного WiFi, предлагаемого моим провайдером, у меня тоже нет проблем. --> Очень ПЛОХО и опасно, я знаю. Вместо этого моя домашняя сеть (Wi-Fi или Ethernet) не может подключиться к ресурсам Samba.
Вот что я попробовал:
1) Открыл порты 137, 138, 139, 447 на клиенте (я знаю, это бессмысленно, это порты сервера)
2) Поставил клиента в DMZ. Все равно никаких результатов.
3) Позвонил своему интернет-провайдеру (VOO - Бельгия), но операторы не знали, как мне помочь.
Вот какой статус выхода я получаю:
Connection to SERVER_IP failed (Error NT_STATUS_IO_TIMEOUT)
Эту команду я успешно использую с общедоступным WiFi, но не могу использовать с домашним подключением:
smbclient //SERVER_IP/Testing -U USER
На маршрутизаторе установлен простой брандмауэр IPv6, который я отключил, на клиенте брандмауэра нет.
Знаете, как это обойти? Я действительно не хочу пользоваться общественным WiFi.
решение1
Подключитесь к своему серверу по SSH и создайте туннель для SMB-трафика от вашего клиента к вашему серверу.
Что-то вроде:
ssh -L 137:127.0.0.1:137 -L 138:127.0.0.1:138 -L 139:127.0.0.1:139 -L 447:127.0.0.1:447 [email protected]
И затем используйте:
smbclient //localhost/Testing -U user
Это создает туннель, который перенаправляет трафик с портов клиентского компьютера 137,138,139,447 на соответствующие порты сервера, а затем подключается smbclient
к прослушивающему порту клиентского компьютера.
Вы можете использовать autossh
, чтобы сделать этот туннель «постоянным».