# Port-Forwarding per UPnP



## MS47475 (11. April 2009)

Hallo,

ich möchte gern per Shellscript (Linux) eine Portweiterleitung an einem Router setzen. Dazu schicke ich per SOAP die entsprechenden Parameter:

```
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
        <u:AddPortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" >
            <NewRemoteHost></NewRemoteHost>
            <NewExternalPort>21</NewExternalPort>
            <NewProtocol>TCP</NewProtocol>
            <NewInternalPort>21</NewInternalPort>
            <NewInternalClient>192.168.0.40</NewInternalClient>
            <NewEnabled>1</NewEnabled>
            <NewPortMappingDescription>test</NewPortMappingDescription>
            <NewLeaseDuration>0</NewLeaseDuration>
        </u:AddPortMapping>
    </s:Body>
</s:Envelope>
```
Als Antwort bekomme ich dann allerdings vom Router folgendes zurück:

```
HTTP/1.1 500 Internal Server Error
DATE: Sat, 01 Jan 2000 20:23:23 GMT
SERVER: home47 UPnP/1.0 AVM FRITZ!Box SL WLAN (UI) 09.04.34
CONNECTION: keep-alive
CONTENT-LENGTH: 418
CONTENT-TYPE: text/xml; charset="iso-8859-1"

<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:schemas-upnp-org:control-1-0">
                    <errorCode>403</errorCode>
                    <errorDescription>Not available Action</errorDescription>
                </UPnPError>
            </detail>
        </s:Fault>
    </s:Body>
</s:Envelope>
```

UPnP im Router ist zum setzen und auslesen von Informationen gesetzt und das Auslesen z.B. der externen WAN-IP funktioniert auch.
Was mache ich da verkehrt? Danke schon mal im voraus.

Gruß
Markus


----------



## zeroize (15. April 2009)

Mein Tipp wäre, dass du zwischen Router und PC einen Hub mit einem anderen PC anschließt, das Netzwerk mithörst und per Weboberfläche auf der Fritzbox genau diese Einstellung eingibst.
Wenn du kein ssl benutzt, müsstest du ja den Aufruf und den benutzten Code wiederfinden.


----------



## MS47475 (16. April 2009)

Hmm, guter Tipp, danke dafür. Allerdings wird dies wohl intern über eine CGI-Schnittstelle erledigt und nicht per UPnP. Somit ist das für mich nicht brauchbar. Leider...


----------

