pycurl und curl funktionieren nicht ohne sudo

pycurl und curl funktionieren nicht ohne sudo

Tut mir leid für mein schlechtes Englisch

ich habe mehr als zwei Netzwerkschnittstellen und möchte Anfragen mit einer bestimmten Schnittstelle senden. Hier ist mein Code mit 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)

Wenn ich meinen Python-Code mit sudo ausführe, funktioniert er sehr gut. Aber ohne sudo tritt ein Timeout-Fehler auf

sogar in Bash:

curl --interface enp0s20u1u3 google.com

funktioniert nicht ohne sudo.

Hinweis: Meine Standardschnittstelle ist enp4s0f2 und wenn ich dies in meinem Code einstelle, ist kein sudo erforderlich

verwandte Informationen