Answers:
如果您正在使用内部地址,请检查
curl http://myip.dnsomatic.com
在Unix shell上可能是一个好主意。
或者,只需将该URL配置到浏览器中即可。
如果您从“ ifconfig -a
”结果中得到的答案不同,则
输入ifconfig
您的内部地址-可能无法从外部使用。
即使一切正常,您也可以安装防火墙,以禁止传入的ssh连接。
这时您应该从计算机上的浏览器尝试关注的端口,
http://www.canyouseeme.org/
这将通过以下方式确认连接,
curl http://myip.dnsomatic.com
curl ifconfig.me
/bin/hostname -i
hostname --all-ip-addresses
。显示主机的所有网络地址。此选项枚举所有网络接口上的所有已配置地址。省略了环回接口和IPv6链接本地地址。与选项-i相反,此选项不依赖于名称解析。不要对输出的顺序做任何假设。
/bin/hostname -I
/bin/hostname -i
只给出127.0.1.1
,这是没有用的。
/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
如果需要内部地址,则在ifconfig之后附加接口,例如
/sbin/ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
如果您位于NAT之后,并且需要公共IP,请使用以下命令:
wget -q -O-checkip.dyndns.org | sed -e's /。当前IP地址://'-e's / <。$ //'
摘自:http : //www.go2linux.org/what-is-my-public-ip-address-with-linux
如果您有多个接口,则可以使用它来指定要使用哪个IP。如果要接口“ eth0”的IPV4地址:
ip addr show dev eth0 | grep "inet " | awk '{ print $2 }'
如果要接口“ eth0”的IPV6地址:
ip addr show dev eth0 | grep "inet6 " | awk '{ print $2 }'
如果要在笔记本电脑的两个常用接口wlan0和eth0之间搜索IP:
CURRENT_IP=''
for INTERFACE in wlan0 eth0; do
if [ -z $CURRENT_IP ]; then
CURRENT_IP=$(ip addr show dev $INTERFACE | grep "inet " | awk '{ print $2 }')
fi
done
这是一条同样适用于Linux和OS X的行,它将返回非本地的第一个地址:
ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
LOCAL_IP=`/bin/hostname -I | sed 's/ //g'`
dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \"
您可以使用dig(1)
类似-4
或的选项-6
来专门寻找IPv4或IPv6地址。Google将以TXT
类型记录的形式提供答案,当由提供者提供时,其周围会带有引号dig
。如果您想随后将变量与实用程序一起traceroute
使用,则必须使用tr(1)之类的内容来删除引号。
其他选项包括whoami.akamai.net
和myip.opendns.com
,它们用A
和AAAA
记录回答(而不是TXT
上面的示例,来自Google),因此,它们不需要删除引号:
dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short
dig -4 @resolver1.opendns.com -t any myip.opendns.com +short
dig -6 @resolver1.opendns.com -t any myip.opendns.com +short
这是一个示例脚本,该脚本使用上述所有选项来设置变量:
#!/bin/sh
IPANY="$(dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv4="$(dig -4 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv6="$(dig -6 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
AKAMv4="$(dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short)"
CSCOv4="$(dig -4 @resolver1.opendns.com -t a myip.opendns.com +short)"
CSCOv6="$(dig -6 @resolver1.opendns.com -t aaaa myip.opendns.com +short)"
printf '$GOOG:\t%s\t%s\t%s\n' "${IPANY}" "${GOOGv4}" "${GOOGv6}"
printf '$AKAM:\t%s\n$CSCO:\t%s\t%s\n' "${AKAMv4}" "${CSCOv4}" "${CSCOv6}"
如果你正在寻找一个私有IP地址,或一组分配给中的所有IP地址,你可以使用的某种组合ifconfig
(在BSD和GNU / Linux), ip addr
(在GNU / Linux), hostname
(选件-i
和-I
上GNU / Linux),netstat
看看发生了什么。
vi /etc/network/interfaces
和接口设置static
(见help.ubuntu.com/8.10/serverguide/C/network-configuration.html)