Hallo,
ich probiere seid einiger Zeit über die TR-064 Schnittstelle einen Port auf meiner Box freizugeben.
Als Client benutze ich einen debian stretch linux server mit SOAP Zugriff über curl aus einem bash script.
----------------------------mein code schnipsel------------------------
location="/upnp/control/wanpppconn1"
uri="urn:dslforum-org:service:WANPPPConnection:1"
action='AddPortMapping'
SoapParamString="<NewRemoteHost>0.0.0.0</NewRemoteHost>
<NewExternalPort>80</NewExternalPort>
<NewProtocol>TCP</NewProtocol>
<NewInternalPort>80</NewInternalPort>
<NewInternalClient>192.168.0.213</NewInternalClient>
<NewEnabled>1</NewEnabled>
<NewPortMappingDescription>HTTP-Server</NewPortMappingDescription>
<NewLeaseDuration>0</NewLeaseDuration>"
curl -k -m 5 --anyauth -u "$FRITZUSER:$FRITZPW" https://$IP:49443$location -H 'Content-Type: text/xml; charset="utf-8"' -H "SoapAction:$uri#$action" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$action xmlns:u='$uri'>$SoapParamString</u:$action></s:Body></s:Envelope>" -s
----------------------------------------------------------------------------------------------------
Leider bekomme ich in allen erdenklichen Variationen der Konfiguration meiner Box immer folgenden Fehler.
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>600</errorCode>
<errorDescription>Argument Value Invalid</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Wenn ich genau diese Freigabe abfrage, funktioniert alles und ich bekomme auch genau diese Werte zurück.
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetSpecificPortMappingEntryResponse xmlns:u="urn:dslforum-org:service:WANPPPConnection:1">
<NewInternalPort>80</NewInternalPort>
<NewInternalClient>192.168.0.213</NewInternalClient>
<NewEnabled>0</NewEnabled>
<NewPortMappingDescription>HTTP-Server</NewPortMappingDescription>
<NewLeaseDuration>0</NewLeaseDuration>
</u:GetSpecificPortMappingEntryResponse>
</s:Body>
</s:Envelope>
Ich habe schon den Haken für "Selbstständige Portfreigaben für dieses Gerät erlauben." gesetzt.
Versucht bestehende Freigaben zu enablen oder Neue hinzuzufügen.
Die Zwei Faktor Authentifizierung abgestellt.
Danach jeweils die Box durchgestartet.
Das Script läuft auf dem Rechner welcher auch das Ziel der Freigabe ist und im selben Subnetz.
Würde riesig freuen, wenn ihr mal schauen könntet ob es bei euch funktioniert oder mir einen Hinweis geben könntet was ich falsch mache.
Beste Grüße
Sky
ich probiere seid einiger Zeit über die TR-064 Schnittstelle einen Port auf meiner Box freizugeben.
Als Client benutze ich einen debian stretch linux server mit SOAP Zugriff über curl aus einem bash script.
----------------------------mein code schnipsel------------------------
location="/upnp/control/wanpppconn1"
uri="urn:dslforum-org:service:WANPPPConnection:1"
action='AddPortMapping'
SoapParamString="<NewRemoteHost>0.0.0.0</NewRemoteHost>
<NewExternalPort>80</NewExternalPort>
<NewProtocol>TCP</NewProtocol>
<NewInternalPort>80</NewInternalPort>
<NewInternalClient>192.168.0.213</NewInternalClient>
<NewEnabled>1</NewEnabled>
<NewPortMappingDescription>HTTP-Server</NewPortMappingDescription>
<NewLeaseDuration>0</NewLeaseDuration>"
curl -k -m 5 --anyauth -u "$FRITZUSER:$FRITZPW" https://$IP:49443$location -H 'Content-Type: text/xml; charset="utf-8"' -H "SoapAction:$uri#$action" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$action xmlns:u='$uri'>$SoapParamString</u:$action></s:Body></s:Envelope>" -s
----------------------------------------------------------------------------------------------------
Leider bekomme ich in allen erdenklichen Variationen der Konfiguration meiner Box immer folgenden Fehler.
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>600</errorCode>
<errorDescription>Argument Value Invalid</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Wenn ich genau diese Freigabe abfrage, funktioniert alles und ich bekomme auch genau diese Werte zurück.
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetSpecificPortMappingEntryResponse xmlns:u="urn:dslforum-org:service:WANPPPConnection:1">
<NewInternalPort>80</NewInternalPort>
<NewInternalClient>192.168.0.213</NewInternalClient>
<NewEnabled>0</NewEnabled>
<NewPortMappingDescription>HTTP-Server</NewPortMappingDescription>
<NewLeaseDuration>0</NewLeaseDuration>
</u:GetSpecificPortMappingEntryResponse>
</s:Body>
</s:Envelope>
Ich habe schon den Haken für "Selbstständige Portfreigaben für dieses Gerät erlauben." gesetzt.
Versucht bestehende Freigaben zu enablen oder Neue hinzuzufügen.
Die Zwei Faktor Authentifizierung abgestellt.
Danach jeweils die Box durchgestartet.
Das Script läuft auf dem Rechner welcher auch das Ziel der Freigabe ist und im selben Subnetz.
Würde riesig freuen, wenn ihr mal schauen könntet ob es bei euch funktioniert oder mir einen Hinweis geben könntet was ich falsch mache.
Beste Grüße
Sky
Zuletzt bearbeitet: