永遠在線的STUN服務器列表:Always Online: STUN Servers
項目地址:https://gitcode.com/gh_mirrors/al/always-online-stun?
在進行實時通信和網絡傳輸時,STUN(簡單Traversal of User Datagram Protocol Through Network Address Translators)服務器是解決NAT(網絡地址轉換)問題的關鍵工具。現在,我們有一個精心維護并定時更新的STUN服務器列表——Always Online: STUN Servers,它將為你的應用程序提供可靠的連接支持。
項目介紹
總是在線的STUN服務器是一個小時級刷新的公共STUN服務器列表。這個項目的目標是提供一個穩定且不斷更新的資源,確保你的應用始終能夠找到可用的STUN服務進行網絡穿透。
項目技術分析
項目通過自動化腳本定期檢查每個STUN服務器,判斷其是否對RFC5389的BINDING
請求作出響應。只有成功響應的服務器才會被納入最終的列表中。列表包括IPv4和IPv6地址,并且分別提供了對應的URL,供直接硬編碼到你的應用中。
此外,為了防止濫用,服務器列表會每次刷新時進行隨機排序,這樣可以分散流量,避免單一服務器過載。
項目及技術應用場景
項目特點
持續更新:每小時自動刷新,確保提供的都是在線服務器。
易于集成:提供固定的文本文件鏈接,可直接硬編碼至你的應用代碼中。
多樣化的IP版本:支持IPv4和IPv6兩種地址類型。
負載均衡:通過列表隨機排序,減少特定服務器的壓力。
靈活的貢獻機制:如果你有其他公開的STUN服務器,可以通過PR或Issue添加到列表中。
示例代碼:JavaScript 集成
以下是使用JavaScript結合Geolocation選擇最近的STUN服務器的示例:
// 獲取地理位置信息
const GEO_LOC_URL = "https://raw.githubusercontent.com/pradt2/always-online-stun/master/geoip_cache.txt";
// 獲取IPv4 STUN服務器列表
const IPV4_URL = "https://raw.githubusercontent.com/pradt2/always-online-stun/master/valid_ipv4s.txt";
// ...獲取經緯度代碼...
// 獲取最接近的STUN服務器
const closestAddr = (await fetch(IPV4_URL).text())
.trim()
.split('\n')
.map(parseServer)
.reduce(findClosest)[0];
// 打印最近的STUN服務器
console.log(closestAddr);
// 輔助函數
function parseServer(addr) {
// ...
}
function findClosest([prev, prevDist], [curr, currDist]) {
// ...
}
對于依賴高效、可靠網絡連接的開發者來說,Always Online: STUN Servers是一個不可或缺的資源。立即集成并提升你的應用性能吧!
always-online-stunA list of publicly available STUN servers, refreshed every hour.項目地址: https://gitcode.com/gh_mirrors/al/always-online-stun
該文章在 2025/6/23 16:26:46 編輯過