У меня дома есть компьютер под управлением Ubuntu Server 12.04, который сопоставлен с внешним IP-адресом. На сервере запущен сервер Samba с одним общим ресурсом. Вот файл конфигурации:
...
#======================= Global Settings =======================
[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = UBUNTUSERVER
# server string is the equivalent of the NT Description field
server string = %h server (Samba, Ubuntu)
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
# wins support = no
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z
# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no
# What naming service and in what order should we use to resolve host names
# to IP addresses
; name resolve order = lmhosts host wins bcast
...
#### Debugging/Accounting ####
# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m
# Cap the size of the individual log files (in KiB).
max log size = 1000
# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
# syslog only = no
# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
syslog = 0
# Do something sensible when Samba crashes: mail the admin a backtrace
panic action = /usr/share/samba/panic-action %d
####### Authentication #######
# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
# security = user
# You may wish to use password encryption. See the section on
# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
encrypt passwords = true
# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam
obey pam restrictions = yes
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes
# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
pam password change = yes
# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
map to guest = bad user
...
[share]
comment = John Share
path=/data/share
read only = no
browseable = yes
guest ok = no
Как вы можете видеть, у меня есть свой собственный общий ресурс под названием «share» внизу файла конфигурации. Мой сервер имеет внутренний IP-адрес 192.168.1.157
и сопоставлен с внешним IP-адресом 66.73.*.*
Я могу подключиться к общему ресурсу samba, когда нахожусь в локальной сети через:
smb://john@192.168.1.157/share
но когда я пытаюсь:
smb://john@66.73.**.**/share
Я получаю ошибку:
Could not display "smb://john@66.73.**.**/share/"
Error: Failed to mount Windows share
Please select another viewer and try again
Я включил режим DMZplus на моем маршрутизаторе для внешнего IP-адреса. Это должно позволить всему трафику течь к внешнему IP-адресу:
Разрешить все приложения (режим DMZplus) - Установите выбранный компьютер в режим DMZplus. Весь входящий трафик, кроме трафика, который был специально назначен другому компьютеру с помощью функции "Разрешить отдельные приложения", будет автоматически направляться на этот компьютер. Компьютер с поддержкой DMZplus менее безопасен, так как для него открыты все неназначенные порты брандмауэра.
Примечание. На устройствах локальной сети, имеющих частный IP-адрес, после выбора режима DMZplus и нажатия кнопки "Сохранить" система выдаст новый IP-адрес выбранному компьютеру. Компьютер должен быть установлен в режим DHCP для получения нового IP-адреса из системы, и вы должны перезагрузить компьютер. Если вы меняете режим DMZplus с одного компьютера на другой, вы должны перезагрузить оба компьютера.
Теперь, когда я делаю сканирование портов на моем внешнем IP (66.73.**.**)
я получаю это:
Starting Nmap 5.21 ( http://nmap.org ) at 2014-01-15 18:00 CST
Nmap scan report for ********************** (66.73.**.**)
Host is up (0.094s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
Как видите, порты для samba открыты снаружи брандмауэра. Я попытался подключиться к нему снова с помощью клиента samba на моем Ubuntu 12.04, и он все еще выдает мне ту же ошибку.
Брандмауэр на уровне маршрутизатора не должен останавливать трафик. Брандмауэр на моем сервере Ubuntu также отключен:
john@john-server:~$ sudo ufw status
[sudo] password for john:
Status: inactive
john@john-server:~$
Traceroute и ping также нормальны:
john@john-ubuntu:~$ traceroute 66.73.**.**
traceroute to 66.73.**.** (66.73.**.**), 30 hops max, 60 byte packets
1 homeportal (192.168.1.254) 5.974 ms 5.967 ms 5.967 ms
2 *************************************** (66.73.**.*) 74.207 ms 74.602 ms 79.749 ms
3 *************************************** (66.73.**.**) 86.636 ms 87.632 ms 87.639 ms
PING 66.73.**.** (66.73.**.**) 56(84) bytes of data.
64 bytes from 66.73.**.**: icmp_req=1 ttl=63 time=71.0 ms
64 bytes from 66.73.**.**: icmp_req=2 ttl=63 time=171 ms
64 bytes from 66.73.**.**: icmp_req=3 ttl=63 time=140 ms
^C
--- 66.73.**.** ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 71.006/127.456/171.293/41.903 ms
У меня есть AT & T роутер:
Модель: 4111N-031
Кто-нибудь знает, где мое соединение облажается?