{"id":17881968,"url":"https://github.com/amine7536/multipass-vpnkit","last_synced_at":"2026-03-02T19:38:46.482Z","repository":{"id":42534230,"uuid":"274524614","full_name":"amine7536/multipass-vpnkit","owner":"amine7536","description":"Inject vpnkit network interface in Canonical Multipass.run","archived":false,"fork":false,"pushed_at":"2022-04-01T04:14:31.000Z","size":7,"stargazers_count":8,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-25T22:31:45.743Z","etag":null,"topics":["docker","hyperkit","macos","multipass","ubuntu","vpnkit"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amine7536.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-23T22:51:47.000Z","updated_at":"2023-08-22T01:43:54.000Z","dependencies_parsed_at":"2022-09-10T04:33:35.813Z","dependency_job_id":null,"html_url":"https://github.com/amine7536/multipass-vpnkit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amine7536/multipass-vpnkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amine7536%2Fmultipass-vpnkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amine7536%2Fmultipass-vpnkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amine7536%2Fmultipass-vpnkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amine7536%2Fmultipass-vpnkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amine7536","download_url":"https://codeload.github.com/amine7536/multipass-vpnkit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amine7536%2Fmultipass-vpnkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30016547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T17:00:27.440Z","status":"ssl_error","status_checked_at":"2026-03-02T17:00:03.402Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["docker","hyperkit","macos","multipass","ubuntu","vpnkit"],"created_at":"2024-10-28T12:46:24.087Z","updated_at":"2026-03-02T19:38:46.467Z","avatar_url":"https://github.com/amine7536.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# multipass-vpnkit\n\nInject vpnkit network interface in Canonical Multipass.run\n\n## Problem\n\nCanonical Multipass.run https://multipass.run/ is great for spawning Ubuntu VM quickly. Unfortunately on MacOS Multipass VMs can't access resources located behind a VPN.\nThis \"hack\" makes Multipass (hyperkit) play nice with corporate VPNs by using VPNKit https://github.com/moby/vpnkit.\n\n## How it works\n\nThe idea is to substitute the `hyperkit` binary by a shell script that injects a secondary network interfaces connected to vpnkit `-s 2:1,virtio-vpnkit,path=/var/run/vpnkit.socket`.\nCredit for this technique goes to https://github.com/AlmirKadric-Published/docker-tuntap-osx.\n\n## Dependencies\n\nYou need to install **Docker For Mac** https://www.docker.com/docker-mac or manually install **VPNKit** binary in `/usr/local/bin/vpnkit`.\n\n## Installation\n\n```bash\nUsage:\n  make \u003ctarget\u003e \u003cvariables\u003e\n\nExample:\n  make vpnkit\n\nTargets:\n  hack     Install hack\n  vpnkit   Configure vpnkit\n```\n\n### Configure VPNKit\n\nInstall `io.pixelfactory.vpnkit.plist`.\n\n```bash\n$ make vpnkit\nmake[1]: Entering directory '/Users/amine/Dev/multipass-vpnkit/vpnkit'\n/Library/LaunchDaemons/io.pixelfactory.vpnkit.plist: service already loaded\nmake[1]: Leaving directory '/Users/amine/Dev/multipass-vpnkit/vpnkit'\n```\n\n### Install hack\n\nMove original **hyperkit** binary to `/Library/Application\\ Support/com.canonical.multipass/bin/hyperkit.original` and replace it with `hyperkit.sh`.\n\n```bash\n$ make hack\n```\n\n### Usage\n\nYou can use Multipass as usual. The script `hyperkit.sh` will \"inject\" the network interface `virtio-vpnkit,path=/var/run/vpnkit.socket`.\n\n```bash\n# Start your VM\n$ multipass launch --name ubuntu\n\n# Configure network\n$ multipass exec ubuntu -- bash -c \"sudo dhclient enp0s2f1\"\ncmp: EOF on /tmp/tmp.n9kuxd3EyQ which is empty\n\n# Get ip\n$ multipass exec ubuntu -- ifconfig enp0s2f1\nenp0s2f1: flags=4163\u003cUP,BROADCAST,RUNNING,MULTICAST\u003e  mtu 1500\n        inet 192.168.66.5  netmask 255.255.255.0  broadcast 192.168.66.255\n        inet6 fe80::50:ff:fe00:3  prefixlen 64  scopeid 0x20\u003clink\u003e\n        ether 02:50:00:00:00:03  txqueuelen 1000  (Ethernet)\n        RX packets 5  bytes 832 (832.0 B)\n        RX errors 0  dropped 0  overruns 0  frame 0\n        TX packets 23  bytes 3614 (3.6 KB)\n        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0\n\n```\n\nYou can know access your private resources (behind corporate VPN) from your VM.\n\n### Uninstall\n\n```bash\nsudo -i\ncd /Library/Application\\ Support/com.canonical.multipass/bin/\nmv hyperkit.original hyperkit\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famine7536%2Fmultipass-vpnkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famine7536%2Fmultipass-vpnkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famine7536%2Fmultipass-vpnkit/lists"}