Networking
如何在網際網路上自動找到我客戶的 linux 機器?
我正在尋找一種方法讓客戶的機器定期“打電話回家”,以便在必要時輕鬆進行 ssh 登錄。我在想一個簡單的腳本,它可以獲取公共 IP 地址並將其發佈到某個地方 - 例如 Twitter,或者可能是對我操作的 apache 伺服器的 http 請求,或者每次更改時發送一封電子郵件。
是否有用於此目的的現有工具/腳本?我已經搜尋並沒有找到任何
ddclient
最簡單的方法是使用ddclient。我在我的伺服器上使用它,並結合了一個免費的域名伺服器,比如 dynu.com。
連結中有更多文件,但會
ddclient
輪詢您客戶的動態 IP 地址。當它發生變化時,它會將新地址發送到 dynu.com(例如)。您將在 dynu.com 擁有一個帳戶,您可以在其中指定您的自定義域名。然後,您可以直接連接到http://yourname.dynu.com,它會重定向到您客戶端的 IP。使用數字 IP 地址的優點是您不需要不斷更新您的 ssh 配置,而可以直接連接到域名。這在我的伺服器上執行良好。
數字IP
或者,如果您不想使用它,而是更喜歡在某處發布數字 IP,這裡是我曾經使用的舊腳本。它使用外部網頁來查找您的本地 IP,這是唯一簡單的方法。然後它會發送郵件
bar@email.com
,但您可以修改它以滿足您的需要。您可以將其作為 cron 作業執行。#!/usr/bin/env bash CURRENTIP=$(curl -s http://myip.dnsomatic.com) # Alternatively, use http://icanhazip.com if echo $CURRENTIP | grep -qE '^([0-9]{1,3}\.){3}[0-9]{1,3}$' ; then if ! cmp --quiet <(echo $CURRENTIP) /home/pi/.myipaddress ; then echo "IP address changed to ${CURRENTIP}" echo $CURRENTIP > /home/foo/.myipaddress echo -e "Foo's IP address has changed to ${CURRENTIP} .\n" | mail -s 'Change of IP address' bar@email.com fi else echo "ERROR: IP address enquiry returns ${CURRENTIP}" fi