{"id":17858609,"url":"https://github.com/vzakharchenko/docker-pptp-port-forwarding","last_synced_at":"2026-04-01T20:29:49.245Z","repository":{"id":82218119,"uuid":"325081431","full_name":"vzakharchenko/docker-pptp-port-forwarding","owner":"vzakharchenko","description":"Docker image with PPTP server including routing and port forwarding","archived":false,"fork":false,"pushed_at":"2021-03-30T09:09:47.000Z","size":1087,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-09T16:08:10.830Z","etag":null,"topics":["cloud","docker","lan","port-forwarding","portforward","pptp","pptp-vpn","routing","vpn"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vzakharchenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-28T18:02:18.000Z","updated_at":"2025-04-22T09:36:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"8d3ad54c-b85c-41a1-81bd-a03135aad77f","html_url":"https://github.com/vzakharchenko/docker-pptp-port-forwarding","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/vzakharchenko/docker-pptp-port-forwarding","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vzakharchenko%2Fdocker-pptp-port-forwarding","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vzakharchenko%2Fdocker-pptp-port-forwarding/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vzakharchenko%2Fdocker-pptp-port-forwarding/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vzakharchenko%2Fdocker-pptp-port-forwarding/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vzakharchenko","download_url":"https://codeload.github.com/vzakharchenko/docker-pptp-port-forwarding/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vzakharchenko%2Fdocker-pptp-port-forwarding/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","docker","lan","port-forwarding","portforward","pptp","pptp-vpn","routing","vpn"],"created_at":"2024-10-28T05:22:29.380Z","updated_at":"2026-04-01T20:29:49.219Z","avatar_url":"https://github.com/vzakharchenko.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker image with PPTP server including routing and port forwarding\n![docker-pptp-port-forwarding amd64, arm/v7, arm64](https://github.com/vzakharchenko/docker-pptp-port-forwarding/workflows/docker-pptp-port-forwarding%20amd64,%20arm/v7,%20arm64/badge.svg)\n## Description\nAccess private network from the internet, support port forwarding from private network to outside via cloud.\n\n[GitHub Project](https://github.com/vzakharchenko/docker-pptp-port-forwarding)\n## Installation :\n[create /opt/config.json](#configjson-structure)\n```\nsudo apt-get update \u0026\u0026 sudo apt-get install -y curl\ncurl -sSL https://raw.githubusercontent.com/vzakharchenko/docker-pptp-port-forwarding/main/ubuntu.install -o ubuntu.install\nchmod +x ubuntu.install\n./ubuntu.install\n```\n\n## Features\n - Docker image\n - [Management routing  and portforwarding using json file](#configjson-structure)\n - [Connect to LAN from the internet](#connect-to-lan-from-the--internet)\n - [Port forwarding through VPN (PPTP)](#port-forwarding)\n - [Connect multiple networks](#connect-multiple-networks)\n - [Automatic installation(Ubuntu)](#automatic-cloud-installation)\n - [Manual Installation steps (Ubuntu)](#manual-cloud-installationubuntu)\n\n## config.json structure\n\n```\n{\n  \"users\": {\n    \"USER_NAME\": {\n      \"password\": \"PASSWORD\",\n      \"ip\": \"192.168.122.XX\",\n      \"forwarding\": [{\n        \"sourceIp\": \"APPLICATION_IP\",\n        \"sourcePort\": \"APPLICATION_PORT\",\n        \"destinationIP\": REMOTE_IP\n        \"destinationPort\": REMOTE_PORT\n      }],\n      \"routing\": [\n        {\n          \"route\": \"ROUTING_TABLE\"\n        }\n      ]\n    }\n  }\n}\n```\nWhere\n- **USER_NAME** username or email\n- **PASSWORD** user password\n- **192.168.122.XX** uniq ip from range 192.168.122.10-192.168.122.254\n- **APPLICATION_IP** service IP behind NAT (port forwarding)\n- **APPLICATION_PORT** service PORT behind NAT (port forwarding)\n- **REMOTE_IP**  remote IP\n- **REMOTE_PORT**  port accessible from the internet (port forwarding)\n- **ROUTING_TABLE**  ip with subnet for example 192.168.8.0/24\n\n## Examples\n\n### Connect to LAN from the  internet\n![](https://github.com/vzakharchenko/docker-pptp-port-forwarding/blob/main/img/pptpRouting.png?raw=true)\n**user1** - router with subnet 192.168.88.0/24 behind NAT\n**user2** - user who has access to subnet 192.168.88.0/24 from the Internet\n```\n{\n  \"users\": {\n    \"user1\": {\n      \"password\": \"password1\",\n      \"ip\": \"192.168.122.10\",\n      \"routing\": [\n        {\n          \"route\": \"192.168.88.0/24\"\n        }\n      ]\n    },\n    \"user2\": {\n      \"password\": \"password2\",\n      \"ip\": \"192.168.122.11\"\n    }\n  }\n}\n```\n\n### Port forwarding\n![](https://github.com/vzakharchenko/docker-pptp-port-forwarding/blob/main/img/pptpWithRouting.png?raw=true)\n**user** - router with subnet 192.168.88.0/24 behind NAT.\nSubnet contains service http://192.168.8.254:80 which is available at from http://195.138.164.211:9000\n\n```\n{\n  \"users\": {\n    \"user\": {\n      \"password\": \"password\",\n      \"ip\": \"192.168.122.10\",\n      \"forwarding\": [{\n        \"sourceIp\": \"192.168.88.1\",\n        \"sourcePort\": \"80\",\n        \"destinationPort\": 9000\n      }],\n    }\n  }\n}\n```\n### connect multiple networks\n![](https://github.com/vzakharchenko/docker-pptp-port-forwarding/blob/main/img/pptpWithRouting2.png?raw=true)\n**user1** - router with subnet 192.168.88.0/24 behind NAT. Subnet contains service http://192.168.88.254:80 which is available at from http://195.138.164.211:9000\n**user2** - router with subnet 192.168.89.0/24 behind NAT.\n**user3** - user who has access to subnets 192.168.88.0/24 and 192.168.89.0/24 from the Internet\n```\n{\n  \"users\": {\n    \"user1\": {\n      \"password\": \"password1\",\n      \"ip\": \"192.168.122.10\",\n      \"forwarding\": [\n        {\n          \"sourceIp\": \"192.168.88.254\",\n          \"sourcePort\": \"80\",\n          \"destinationPort\": 9000\n        }\n      ],\n       \"routing\": [\n        {\n          \"route\": \"192.168.88.0/24\"\n        }\n      ]\n    },\n    \"user2\": {\n      \"password\": \"password2\",\n      \"ip\": \"192.168.122.11\",\n      \"routing\": [\n        {\n          \"route\": \"192.168.89.0/24\"\n        }\n      ]\n    },\n    \"user3\": {\n      \"password\": \"password3\",\n      \"ip\": \"192.168.122.12\"\n    }\n  }\n}\n```\n\n\n## Troubleshooting\n1. Viewing logs in docker container:\n```\ndocker logs pptp-port-forwarding -f\n```\n2. print routing table\n```\ndocker exec pptp-port-forwarding bash -c \"ip route\"\n```\n3. print iptable rules\n```\ndocker exec pptp-port-forwarding bash -c \"iptables -S\"\n```\n\n\n## Cloud Installation\n### Automatic cloud installation\n[create /opt/config.json](#configjson-structure)\n```\nsudo apt-get update \u0026\u0026 sudo apt-get install -y curl\ncurl -sSL https://raw.githubusercontent.com/vzakharchenko/docker-pptp-port-forwarding/main/ubuntu.install -o ubuntu.install\nchmod +x ubuntu.install\n./ubuntu.install\n```\n\n### Manual Cloud Installation(Ubuntu)\n\n1. install all dependencies\n```\nsudo apt-get update \u0026\u0026 sudo apt-get install -y iptables git iptables-persistent node\n```\n2. install docker\n```\nsudo apt-get remove docker docker.io containerd runc\nsudo curl -sSL https://get.docker.com | bash\nsudo groupadd docker\nsudo usermod -aG docker $USER\nnewgrp docker\n```\n\n3. Configure host machine\n```\necho \"nf_nat_pptp\" \u003e\u003e /etc/modules\necho \"ip_gre\" \u003e\u003e /etc/modules\niptables -I FORWARD -p gre -j ACCEPT\nsudo iptables-save \u003e /etc/iptables/rules.v4\nsysctl -w net.ipv4.ip_forward=1\nsysctl -w net.netfilter.nf_conntrack_helper=1\nsudo echo \"net.ipv4.ip_forward=1\"\u003e/etc/sysctl.conf\nsudo echo \"net.netfilter.nf_conntrack_helper=1\"\u003e/etc/sysctl.conf\n```\n4. [create /opt/config.json](#configjson-structure)\n\n5. start docker image\n\n```\nexport CONFIG_PATH=/opt/config.json\ncurl -sSL https://raw.githubusercontent.com/vzakharchenko/docker-pptp-port-forwarding/main/pptp-js/generateDockerCommands.js -o generateDockerCommands.js\n`node generateDockerCommands.js`\n```\n6. reboot machine\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvzakharchenko%2Fdocker-pptp-port-forwarding","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvzakharchenko%2Fdocker-pptp-port-forwarding","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvzakharchenko%2Fdocker-pptp-port-forwarding/lists"}