返回列表 發帖

DDNS更新不到IP的问题

在小区宽带接入(不是常见的ADSL接入)情况下,大厦的路由器Wan口才有公网IP的,下面接着DD-WRT路由器,这时用DD-WRT的DDNS来让外网用户获取外网IP时遇到麻烦了,DD-WRT检测到的Wan其实是大厦路由器的LanIP,真正外网IP变动时,DD-WRT没有及时更新到,外网也访问不到位于DD-wrt上的VPN服务?

如何让DD-WRT在二级路由器下也能更新到外网IP的DDNS设置呢?

本帖最後由 Skypeus 於 2013-12-19 21:14 編輯
朋友, 其實 DD-WRT 軟件内部已經有内建的功能去 Detect 你真正的上游 IP

很簡單:-  (按我下面的指示去 C ...
homeinns 發表於 2013-12-19 00:16



    在DD-WRT的上層路由器我是能修改其設置的,已經把DD獲取的LANIP固定在192.168.1.8,而且也放入了DMZ。 就是在這樣的二級路由器環境下,按homeinns的方法把Do not use external ip check 從Yes選為No後,也是一直無法獲取外網的WanIP,看DDNS狀態如下:
DDNS Status
Thu Dec 19 18:34:02 2013: INADYN: Started 'INADYN Advanced version 1.96-ADV' - dynamic DNS updater.
Thu Dec 19 18:34:02 2013: INADYN: IP read from cache file is '192.168.1.8'. No update required.
Thu Dec 19 18:34:03 2013: INADYN:IP: Error 0x83 in recv()
Thu Dec 19 18:34:03 2013: W: DYNDNS: Error 'RC_IP_RECV_ERROR' (0x15) when talking to IP server
Thu Dec 19 18:34:03 2013: W:'RC_IP_RECV_ERROR' (0x15) updating the IPs. (it 0)
Thu Dec 19 18:44:10 2013: INADYN:IP: Error 0x83 in recv()
Thu Dec 19 18:44:10 2013: W: DYNDNS: Error 'RC_IP_RECV_ERROR' (0x15) when talking to IP server
Thu Dec 19 18:44:10 2013: W:'RC_IP_RECV_ERROR' (0x15) updating the IPs. (it 1)

更改為其他DDNS服務商,如dyndns.org(被重置) 、dtdns.com(出錯)亦出現如上的狀態信息。


現在嘗試尋找能讓DDNS實時更新到真正的Wan IP的script .......

TOP

請回答下面的問題,我們這裡的高手,才能夠無償的幫到你:-

(1) 爲什麽你能夠修改到上游的小區 ISP 的路由器 ...
homeinns 發表於 2013-12-19 23:07


實際情況沒這麼複雜, 這個有真正WANIP的Router並不是ISP的,是小區寬帶住戶的自己的,所以我有權限去到Router那裡修改它NAT轉換,從DD-WRT Router到WanRouter實際就只有兩層Router,沒有3層那些多Router,按您的方法是可以在上層Router把Port 1723  Forward 到DD-WRT Router,但我已經把DD-WRT放在DMZ了,已經是有同樣的效果了。
    就是在這兩層路由器環境下,把Do not use external ip check 從Yes選為No後,第一次試時偶爾可以獲取外網的WanIP,但之後WanIP更新,DD-WRT並沒有偵測到。看DDNS狀態總是出下面的信息:
Thu Dec 19 18:34:03 2013: INADYN:IP: Error 0x83 in recv()
Thu Dec 19 18:34:03 2013: W: DYNDNS: Error 'RC_IP_RECV_ERROR' (0x15) when talking to IP server
Thu Dec 19 18:34:03 2013: W:'RC_IP_RECV_ERROR' (0x15) updating the IPs. (it 0)
Thu Dec 19 18:44:10 2013: INADYN:IP: Error 0x83 in recv()
Thu Dec 19 18:44:10 2013: W: DYNDNS: Error 'RC_IP_RECV_ERROR' (0x15) when talking to IP server
Thu Dec 19 18:44:10 2013: W:'RC_IP_RECV_ERROR' (0x15) updating the IPs. (it 1)

把Do not use external ip check 選回為Yes後,狀態顯示更新IP是成功的,但更新到的IP其實是上層Router Lan IP.

TOP

Skypeus C-Hing, 忘記了告訴你,DD-WRT 的 Update Client,是有 10分鐘的 Time-Delay 的 (去防止 DnyDns  ...
homeinns 發表於 2013-12-20 13:46



    NAT轉換與用DMZ都試過,PPTP Server、OpenVPN Server都可以連接進去(IP沒變之前),之前在WR1043ND跑的是Gargoyle Router也是DDNS的方式來連接Gargoyle的OpenVPN Server的,還是在兩層路由器的環境下,一般都連接得上,Gargoyle的DDNS工作正常。就最近幾天剛把wr1043nd改刷DD-WRT來跑PPTP Server、OpenVPN Server,就發現DDNS遲遲更新不到IP的問題,就上來telecom-cafe求教各位師兄了。

homeinns  C-Hing您說:“要忍耐啊,等 10~15 分鐘,Software 才會 Update ” ,可是我等了一天,它都沒有更新到正確的IP,所以覺得那個DD-WRT的DDNS程式怪怪的。感覺沒有Gargoyle Router自帶的DDNS程式好用。

我再繼續折騰一下吧…………………… 看有沒有新的結果........ 呵呵 

TOP

看來 Skypeus C-Hing 也不是網絡的 Lu-Lu, (因爲他能看懂我的東西)

我深信,以 Skypeus C-Hing 的網絡 ...
homeinns 發表於 2013-12-20 14:36



    好多關於VOIP和VPN的知識,我都是從茶室的各位師兄那裡學來了,這裡各位師兄都是熱心腸的,樂於助人,小弟受益非淺啊!

用DD-WRT的遇到的問題,回去再折騰那個小Router了。

TOP

看來 Skypeus C-Hing 也不是網絡的 Lu-Lu, (因爲他能看懂我的東西)

我深信,以 Skypeus C-Hing 的網絡 ...
homeinns 發表於 2013-12-20 14:36



    要不是那個“牆”,也不會到google老師那裡找到茶室,然後在這裡學會了怎麼用“梯子”。與G*F*W*的鬥爭中學到了不少網絡的新知識。

TOP

If your DD-WRT router is located in China, then it is possible that your site blocked DDNS update. ...
tomleehk 發表於 2013-12-20 23:46


dyndns.org 雖然用PING的可以偶爾得到正確的IP,但它在國內確實已被牆!

Pinging members.dyndns.org [204.13.248.111] with 32 bytes of data:
Reply from 204.13.248.111: bytes=32 time=300ms TTL=47
Reply from 204.13.248.111: bytes=32 time=321ms TTL=47
Reply from 204.13.248.111: bytes=32 time=361ms TTL=47
   
Pinging checkip.dyndns.com [216.146.43.70] with 32 bytes of data:
Reply from 216.146.43.70: bytes=32 time=497ms TTL=42
Reply from 216.146.43.70: bytes=32 time=498ms TTL=42
Reply from 216.146.43.70: bytes=32 time=533ms TTL=42


dyndns的連接被重置,改用其他還未被牆的DDNS服務。
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

看來 Skypeus C-Hing 也不是網絡的 Lu-Lu, (因爲他能看懂我的東西)
解決以後, 請 Post 上來, 作爲後世的借鑑。...
homeinns 發表於 2013-12-20 14:36



    折騰了幾天,確定DD-WRT的DDNS更新程式INADYN有Bug, 在某些DD-WRT版本的firmware存在這個問題,但你不知那個版本的firmware沒有這個Bug,可能只好下載多幾個firmware來重新刷機來測試。

現在我改用wget的方式來定時更新本地WANIP到DDNS服務器上,屢試不爽!

方法分享如下:

先SSH到DD-WRT Router,輸入下面的命令,
wget -q -0 /var/log/dyndns.log "http://userid:password@members.dyndns.org//nic/update?hostname= userid.dyndns.org" >/dev/null 2>&1
  要把上面的userid同password改為您的dyndns的帳號和密碼。

再vi /var/log/dyndns.log 看看是不是更新到了正確的WanIP。測試OK後,把它加入到Router的定時任務中,vi /tmp/cron.d/cron_jobs
輸入 */5 * * * * root wget -q -0 /var/log/dyndns.log "http://userid:password@members.dyndns.org//nic/update?hostname= userid.dyndns.org" >/dev/null 2>&1
其中的*/5 * * * * 為每隔5分鐘wget一次,讓它定時更新WanIP到DDNS服務器。
你也可以改*/10 * * * * 或*/15 * * * * 間隔更長時間來更新一次。保存,退出後重啟Router。

這下DD-WRT Router中用DDNS服務安逸了, 再也不用擔心更新不到IP,也不用擔心更新得太慢,因為自己可以把它設置為更短的時間,用其它DDNS服務的,如dtdns.com、dnspark.com、No-IP、CHANGEIP.COM、freedns.afraid.org的script也類似,只需把上面鏈接DDNS服務地址改為對應的就行。
現在不管DD-WRT Router是位於兩層路由、還是三層路由或N層路由的環境,無需作NAT轉換,只要能訪問到DDNS服務商的鏈接地址,就可以用以上的方法來更新DDNS,屢試不爽!

另外,在國內訪問不到dyndns的朋友,可以在DD-WRT或OpenWRT中把
address=/members.dyndns.org/204.13.248.111
address=/checkip.dyndns.org/216.146.43.70
加入到DNSMasq中,保存,重啟服務就可以生效。就直接可以訪問到dnydns服務鏈接了。

TOP

返回列表