{ "info": { "author": "Manuel Schoelling", "author_email": "manuel.schoelling@gmx.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: End Users/Desktop", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: Communications", "Topic :: System :: Networking" ], "description": "# WireGuard Peer-to-Peer\n\nA tool for setting up WireGuard connections from peer to peer.\n\nIt takes care of exchanging public keys, IP addresses and NAT traversal.\n\n\n## Installation\n\n### 0) Install WireGuard\nSee WireGuard's [installation page](https://www.wireguard.io/install/)\n\n### 1) Install [BulletinBoard DHT](https://github.com/manuels/bulletinboard-dht/)\n\n```bash\n wget 'https://github.com/manuels/bulletinboard-dht/releases/download/v0.5.0/bulletinboard_0.5.0_amd64.deb'\n sudo dpkg -i bulletinboard_0.5.0_amd64.deb\n```\n\n### 2) Install wg-p2p\n\n```bash\n pip install wireguard-p2p\n```\n\n## Exchange Public Keys\n\n### 0) Create new config file (optional)\n\nAlice creates a new WireGuard [configuration file](https://git.zx2c4.com/WireGuard/about/src/tools/wg.8) on her computer named `bob`. (Bob does the same on his machine.)\n\n```bash\nalice$ wg-p2p bob new | sudo tee /etc/wireguard/bob.conf >/dev/null\n\nalice$ sudo cat /etc/wireguard/bob.conf\n[Interface]\nListenPort = 51800\nPrivateKey = p504swpAoXHitQOOPHfPmt4qqY5ik5xkUrMnAZTr4X8=\nAddress = 10.0.100.2/24\n```\n\n\n### 1) Publish Public Keys\n\nAlice publishes her public key, so Bob can find it. \n\n```bash\nalice$ wg-p2p bob publish alice\n[sudo] password for alice: # to read /etc/wireguard/bob.conf\nPublished public key LLgKTG7VaTZKzikIRR0oRkyZw1IKNPIXGt0RYJV2OWA= as \"alice\".\n```\n\n\n### 2) Retrieve Bob's Public Key\n\nAlice adds Bob's public key to her configuration file. (Bob does the same on his machine.)\n\n```bash\nalice$ wg-p2p bob add-peer bob | sudo tee /etc/wireguard/bob.conf >/dev/null\n1 peer(s) found named \"alice\".\nWould you like to add the peer with public key EKJDRxMeLswhIpaCy6xnYLD1ZaHMNvi5SuT10L8w1m8=? [Y/n]\n```\n\n\n## Update Bob's IP and Port and traverse NAT\n\nAlice and Bob can determine their current IP address and setup NAT traversal (using STUN) and publish it.\n\nThis has to be done initially and from time to time when both IP addresses change or the NAT traversal expired.\n\n```bash\nalice$ wg-quick down bob\n\nalice$ wg-p2p bob update | sudo tee /etc/wireguard/bob.conf >/dev/null\nOwn public address: 38.12.81.2:21280, NAT type: Full Cone\nLocal NAT: Full Cone\nRemote NAT: Full Cone\n[Interface]\nListenPort = 51800\nPrivateKey = p504swpAoXHitQOOPHfPmt4qqY5ik5xkUrMnAZTr4X8=\nAddress = 10.0.100.2/24\n\n[Peer]\nAllowedIPs = 10.0.0.0/24\nPublicKey = EKJDRxMeLswhIpaCy6xnYLD1ZaHMNvi5SuT10L8w1m8=\nEndpoint = 81.52.9.1:2286\n\nalice$ wg-quick up bob\n```\n\n(Bob does the same on his machine.)", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/manuels/wireguard-p2p", "keywords": "wireguard peer-to-peer p2p", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "wireguard-p2p", "package_url": "https://pypi.org/project/wireguard-p2p/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/wireguard-p2p/", "project_urls": { "Homepage": "https://github.com/manuels/wireguard-p2p" }, "release_url": "https://pypi.org/project/wireguard-p2p/0.1.3/", "requires_dist": null, "requires_python": "", "summary": "A tool for setting up WireGuard connections from peer to peer.", "version": "0.1.3" }, "last_serial": 2840413, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "8b8a56651621403840fd5b905c96c2ea", "sha256": "d1fda9481827d11d2c0d5fbca64514063805e9bf402f2748cff13d66cbd19a81" }, "downloads": -1, "filename": "wireguard-p2p-0.1.1.tar.gz", "has_sig": false, "md5_digest": "8b8a56651621403840fd5b905c96c2ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2411, "upload_time": "2017-04-30T10:04:10", "url": "https://files.pythonhosted.org/packages/fa/ba/11813e6a2f589c8d9d076c6ca0334f259a4d5deb4109fca5e936bc0ada66/wireguard-p2p-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "0060451031fd5017e8928a5c6326fb6e", "sha256": "fa8ddd363bd3a835b2529d0de94a7771d52c93b67d8a5caf3fb502968511a4bb" }, "downloads": -1, "filename": "wireguard-p2p-0.1.2.tar.gz", "has_sig": false, "md5_digest": "0060451031fd5017e8928a5c6326fb6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2408, "upload_time": "2017-04-30T13:35:49", "url": "https://files.pythonhosted.org/packages/5e/56/bd0a38cff0f21fb45a7e1a214bf21c6a8087b219ebcb1b561f207b749687/wireguard-p2p-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "d016a112f1673b34beb80c287b8b2da1", "sha256": "5aedeb7aa44fd5c1c6883c181c7ab01a61d94b56ee0715957ebc037fda1a6da3" }, "downloads": -1, "filename": "wireguard-p2p-0.1.3.tar.gz", "has_sig": false, "md5_digest": "d016a112f1673b34beb80c287b8b2da1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2412, "upload_time": "2017-04-30T13:35:42", "url": "https://files.pythonhosted.org/packages/d7/87/92cd95856536b39dbf574d8e9455ac614afb3da4b2d23f69bd7b088c6bda/wireguard-p2p-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d016a112f1673b34beb80c287b8b2da1", "sha256": "5aedeb7aa44fd5c1c6883c181c7ab01a61d94b56ee0715957ebc037fda1a6da3" }, "downloads": -1, "filename": "wireguard-p2p-0.1.3.tar.gz", "has_sig": false, "md5_digest": "d016a112f1673b34beb80c287b8b2da1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2412, "upload_time": "2017-04-30T13:35:42", "url": "https://files.pythonhosted.org/packages/d7/87/92cd95856536b39dbf574d8e9455ac614afb3da4b2d23f69bd7b088c6bda/wireguard-p2p-0.1.3.tar.gz" } ] }