讓阿里雲支持IPv6以及Socket.io的相關改動筆記

隨手記錄一下

  • S端代碼層:
    • socket.io的server端實現提供了監聽IP的參數,只需要在監聽的函數裏,提供監聽[::] (IPv6的0.0.0.0)這個參數即可同時監聽Ipv6和ipv4,ipv4會以兼容形式變成IPv6(大概是 ::ffff:192.168.1.1 這樣)
      -
      let app = require('express')();
      let server = require('http').Server(app);
      let io = require('socket.io')(server);
      server.listen(port,"::")//這裏提供監聽的IP
  • S端操作系統層:

    • 據某阿里一生黑survey得到的結果,阿里雲服務不支持IPv6(主要是大陸境內ISP的IPv6幾乎不支持),因此阿里雲的公用鏡像默認會關掉IPv6相關配置.
    • 主要操作是兩個點,一個是啓用服務器的IPV6,另一個是去申請一個IPV6的tunnel,然後配置到機器上
    • 具體操作參考這篇blog:(Ubuntu)http://www.cnblogs.com/ios4app/p/6877355.html
    • CentOS會在一開始啓用IPv6上有細微差別,大概應該是這樣:(未測試)https://elkpi.com/topics/aliyun-enable-ipv6.html
    • 配置上有一個坑,就是在配置ipv6 的tunnel信息的時候,local不見得一定就是按照上面的blog所寫的要填寫內網IP,可能要根據你的實際網絡配置狀況,個人經驗是填寫eth0上的IPv4 的IP
    • 配置完畢後,可以用ping6 ipv6.google.com 或者百度 ,看看是否能通
    • 相應地,如果需要curl調試,輸入裸IPV6的IP時需要加入大括號以及-g參數(例如 curl -g http://[::1]:80),如果是訪問ipv6域名,需要加上-6參數來解析域名(例如 curl -6 http://ipv6.google.com)
    • 順帶一提,即使是阿妹你看的阿里雲服務器,好像也沒有自動獲取到ipv6地址,估計還需要進一步配置
  • 網絡層:

    • 時刻記得國內的ISP並不支持ipv6這一點,所以很多情況下我們都沒有ipv6的測試環境,需要自己局域網構造一個
  • C端代碼層:

    • 額…..socket.io的unity實現client直接支持IPV6了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章