首页 教程 正文
  • 本文约1070字,阅读需5分钟
  • 1022
  • 22

Python Aws Ubuntu20 配置多IP

温馨提示:本文最后更新于2022年10月23日 01:39,若内容或图片失效,请在下方留言或联系博主。

1. 业务场景:

高频次交易需要多次访问接口,配置单服务器多IP绕过币安单个IP频率限制

2. AWS实例选择:

t3系列,东京A区,ubuntu20
这是我测试的币安延迟最低的配置(平均6ms)
换一个区域、一个系统,延迟变化可能会变大几百ms

Okx需要阿里云香港,B区,同理也可以配置多IP,不过网上的文档很多,也许下一篇我会写(平均8ms)

3. 配置AWS:

图片alt
图片alt
图片alt
图片alt
图片alt
图片alt
图片alt

4.配置服务器:

使用指令把新加的ip添加到网卡中:
172.31.34.174为分配的内部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 节点 把aws分配的内网ip写在 addresses节点下

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

图片alt

修改完成后重启

5.Python使用多IP:

'''获取本地ip'''
import netifaces as ni
DuoIp = []
# print('检测服务器网络配置')
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"检测到私有ip:{ip}")
                if ip not in DuoIp:
                    DuoIp.append(ip)
print(f"当前服务器私有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"))
评论