Python Aws Ubuntu20 配置多IP
1. 業(yè)務(wù)場(chǎng)景:
高頻次交易需要多次訪問接口,配置單服務(wù)器多IP繞過幣安單個(gè)IP頻率限制
2. AWS實(shí)例選擇:
t3系列,東京A區(qū),ubuntu20
這是我測(cè)試的幣安延遲最低的配置(平均6ms)
換一個(gè)區(qū)域、一個(gè)系統(tǒng),延遲變化可能會(huì)變大幾百ms
Okx需要阿里云香港,B區(qū),同理也可以配置多IP,不過網(wǎng)上的文檔很多,也許下一篇我會(huì)寫(平均8ms)
3. 配置AWS:







4.配置服務(wù)器:
使用指令把新加的ip添加到網(wǎng)卡中:
172.31.34.174為分配的內(nèi)部IP
ip addr add 172.31.34.174/20 dev ens5
echo 'ip addr add 172.31.34.174/20 dev ens5' >> /etc/rc.local
ip a
或者修改文件:
/etc/netplan/50-cloud-init.yaml
修改addresses 節(jié)點(diǎn) 把a(bǔ)ws分配的內(nèi)網(wǎng)ip寫在 addresses節(jié)點(diǎn)下
ethernets:
? ?ens5:
? ? ? ?dhcp4: true
? ? ? ?dhcp6: false
? ? ? ?match:
? ? ? ? ? ?macaddress: 0a:5e:a8:b4:c3:5e
? ? ? ?set-name: ens5
? ? ? ?addresses:
? ? ? ? ? - 172.31.1.144/20
? ? ? ? ? - 172.31.0.140/20
version: 2

修改完成后重啟
5.Python使用多IP:
'''獲取本地ip'''
import netifaces as ni
DuoIp = []
# print('檢測(cè)服務(wù)器網(wǎng)絡(luò)配置')
for dev in ni.interfaces():
? ?print('dev:',dev)
? ?if 'ens' in dev or 'eth' in dev or 'enp' in dev:
? ? ? ?if len(ni.ifaddresses(dev)) > 2:
? ? ? ? ? ?# print(ni.ifaddresses(dev))
? ? ? ? ? ?for i in ni.ifaddresses(dev)[2]:
? ? ? ? ? ? ? ?ip=i['addr']
? ? ? ? ? ? ? ?print(f"檢測(cè)到私有ip:{ip}")
? ? ? ? ? ? ? ?if ip not in DuoIp:
? ? ? ? ? ? ? ? ? ?DuoIp.append(ip)
print(f"當(dāng)前服務(wù)器私有ip為{DuoIp}")
from requests_toolbelt.adapters import source ?#指定出口IP
sb = requests.Session()
new_source = source.SourceAddressAdapter(DuoIp[1])
sb.mount('http://', new_source)
sb.mount('https://', new_source)
print(sb.get("http://ip-api.com/json"))
博客原文: https://sumubai.cc/post/86