![为什么我不能使用我的域名进行 ssh 但可以使用 ip 地址?](https://linux22.com/image/894341/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%B8%8D%E8%83%BD%E4%BD%BF%E7%94%A8%E6%88%91%E7%9A%84%E5%9F%9F%E5%90%8D%E8%BF%9B%E8%A1%8C%20ssh%20%E4%BD%86%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20ip%20%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
所以我有一台计算机,我正试图在家里将其设置为服务器。我在其上安装了 ssh 服务器,并在我的笔记本电脑上运行 ssh 客户端。ssh 运行正常,我使用公钥来确保安全,并且已禁用密码。
我没有静态 IP 地址,所以我获得了一个域名,下面将其称为 domain.online,我通过 namecheap 获得。我在家庭服务器上运行 ubuntu 服务器,在笔记本电脑上运行 ubuntu。我有根据 namecheap 上的文档配置 ddclient和关于 DynamicDNS 的官方 ubuntu 文档。
我与 namecheap 的代表进行了交谈,他们确认我已经正确设置了名称服务器。但是当我尝试通过 ssh 进入服务器时;
ssh [email protected]
我得到了一个;
connect to host domain.online port 22: connection refused
我已经在路由器上启用了端口转发。我目前正在远程 ssh 进入服务器,因此端口转发正在运行。(我打电话给我的妻子,让她在 whatsmyip 上查找 ip 地址)。
还联邦水务局被禁用。
以下是我的 ddclient.conf 文件;
es# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
#pid=/var/run/ddclient.pid
#use=if, if=enp2s0f0
use=web, web=dynamicdns.park-your-domain.com/getip
protocol=namecheap
#ssl=yes
server=dynamicdns.park-your-domain.com
login=domain.online
password=################
www
以下内容来自我的 sshd_config 文件;
# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
PubkeyAuthentication yes
RSAAuthentication yes
# Expect .ssh/authorized_keys2 to be disregarded by default in future.
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
#AllowAgentForwarding yes
AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation sandbox
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none
# no default banner path
#Banner none
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
# override default of no subsystems
Subsystem sftp /usr/lib/openssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
我不知道该文件是否有必要,但我想有人会要求它
所以,我的问题是,为什么当我输入
ssh [email protected]
我明白了连接被拒绝错误,但是当我
ssh [email protected]
我成功连接到我的服务器。
此外,结果sudo service ddclient status
是:
ddclient.service - LSB: Update dynamic domain name service entries
Loaded: loaded (/etc/init.d/ddclient; generated; vendor preset: enabled)
Active: active (running) since Tue 2017-06-27 14:21:21 EDT; 23h ago
Docs: man:systemd-sysv-generator(8)
Tasks: 1 (limit: 4915)
Memory: 8.7M
CPU: 5.581s
CGroup: /system.slice/ddclient.service
└─7217 ddclient - sleeping for 10 seconds
Jun 27 14:21:20 computer-name systemd[1]: Starting LSB: Update dynamic domai
Jun 27 14:21:21 computer-name systemd[1]: Started LSB: Update dynamic domain
lines 1-12/12 (END)
答案1
尝试dig +short "your_domain" @8.8.8.8
在 google 公共 RNS 上执行 DNS 查找。如果返回了您的真实 IP 地址,则您就会知道问题不在于域名解析。