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