pycurl 和 curl 在沒有 sudo 的情況下無法工作

pycurl 和 curl 在沒有 sudo 的情況下無法工作

抱歉我的英文不好

我有兩個以上的網路接口,我想使用特定接口發送請求。這是我的 pycurl 程式碼:

def curl_post(url, data, iface=None):
    c = pycurl.Curl()
    buffer = BytesIO()
    c.setopt(pycurl.URL, url)
    c.setopt(pycurl.POST, True)
    c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json'])
    c.setopt(pycurl.TIMEOUT, 10)
    c.setopt(pycurl.WRITEFUNCTION, buffer.write)
    c.setopt(pycurl.POSTFIELDS, data)
    if iface:
        c.setopt(pycurl.INTERFACE, iface)
    c.perform()

    # Json response
    resp = buffer.getvalue().decode('UTF-8')

    #  Check response is a JSON if not there was an error
    try:
        resp = json.loads(resp)
    except json.decoder.JSONDecodeError:
        pass

    buffer.close()
    c.close()
    return resp
dat = {"id": 52, "configuration": [{"eno1": {"address": "192.168.1.1"}}]}
res = curl_post("https://emapp.cc/get_my_ip", json.dumps(dat), "enp0s20u1u3")
print(res)

當我使用 sudo 運行 python 程式碼時,它運行得很好。但如果沒有 sudo 它會引發超時錯誤

即使在 bash 中:

curl --interface enp0s20u1u3 google.com

沒有 sudo 就無法工作。

注意:我的預設介面是 enp4s0f2,當我將其設定為我的程式碼時,不需要 sudo

相關內容