{"id":29821035,"url":"https://github.com/dcrebbin/azure-vpn","last_synced_at":"2026-02-07T06:00:59.390Z","repository":{"id":290834650,"uuid":"975713447","full_name":"dcrebbin/azure-vpn","owner":"dcrebbin","description":"Tutorial for a Linux Ubuntu based Shadowsock proxy via Azure ","archived":false,"fork":false,"pushed_at":"2025-05-01T07:07:39.000Z","size":19,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-28T23:48:53.088Z","etag":null,"topics":["azure","linux","proxy","shadowsocks","vpn"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dcrebbin.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,"zenodo":null}},"created_at":"2025-04-30T19:15:54.000Z","updated_at":"2025-05-02T16:47:59.000Z","dependencies_parsed_at":"2025-04-30T20:42:06.476Z","dependency_job_id":"ef14a31e-af24-4b9b-9671-b0973409764f","html_url":"https://github.com/dcrebbin/azure-vpn","commit_stats":null,"previous_names":["dcrebbin/azure-vpn"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dcrebbin/azure-vpn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcrebbin%2Fazure-vpn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcrebbin%2Fazure-vpn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcrebbin%2Fazure-vpn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcrebbin%2Fazure-vpn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dcrebbin","download_url":"https://codeload.github.com/dcrebbin/azure-vpn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcrebbin%2Fazure-vpn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29187933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T05:07:31.176Z","status":"ssl_error","status_checked_at":"2026-02-07T05:06:15.227Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["azure","linux","proxy","shadowsocks","vpn"],"created_at":"2025-07-28T23:39:04.416Z","updated_at":"2026-02-07T06:00:59.377Z","avatar_url":"https://github.com/dcrebbin.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Azure Proxy/VPN\n\nHow to setup a Shadowsocks proxy/VPN with a $5 per month VM hosted on Azure\n(similar process for other Linux VMs too)\n\n## Requirements:\n- Azure VM with a public IP\n- (optional) custom domain\n\n### Azure VM\n\n1. Head to [portal.azure.com](https://portal.azure.com/) and create an account\n   \n    a. Once Created -\u003e Virtual Machines -\u003e Create\n\n\u003cimg width=\"811\" alt=\"Screenshot 2025-05-01 at 3 41 51 am\" src=\"https://github.com/user-attachments/assets/6cb39811-df2d-46ed-85b8-651949d43f3e\" /\u003e\n\n2. Select your desired VPN Region (Very important to make sure you choose the right one as switching over isn't simple\n  - East Asia: Hong Kong\n  - South East Asia: Singapore (recommended)\n\n3. Ensure some version of Linux Ubuntu Server is choosen\n\n4. Pick `Standard_B1ls - 1 vcpu, 0.5 GiB memory (US$3.94/month)` via 'Size'\n\n5. Setup your SSH Public Key/Password (if not using SSH public key) and your username\n\n6. Allow for SSH \u0026 HTTPS inbound ports\n\n7. (Disks) Next \u003e Ensure that 30GB is the selected disk space \u003e select Standard SSD\n\n8. (Networking) Create a new public IP (Make note of it)\n\n9. Skip through everything and create your VM\n\n### DNS custom Host\n\n1. Head to Cloudflare (or your DNS provider)\n\n2. Go to DNS Records\n\n3. Type \"A\" | Name \"your-subdomain\" (or empty) | Content \"your-azure-public-ip\" | Proxy Status \"DNS Only\"\n\n4. Add Record\n\nFrom now on, only your custom host \"example.com\" where asked\n\n### VM Setup \n\nGo to [`./commands.md`](https://github.com/dcrebbin/azure-vpn/blob/main/commands.md) for more information\n\n### Mac Client [(ClashX)](https://en.clashx.org) (Free)\n\n1. Go to https://en.clashx.org -\u003e Free Download\n\n2. Once running -\u003e Select ClashX from your toolbar -\u003e Config -\u003e Open config folder\n\n3. Replace the default `config.yaml` with the [`./clash.yaml`](https://github.com/dcrebbin/azure-vpn/blob/main/clash.yaml) in this repo\n\n4. (ClashX Dropdown) -\u003e Config -\u003e Reload Config\n\n5. (ClashX Dropdown) -\u003e GLOBAL -\u003e Benchmark\n\nIf \"clash\" is green or yellow your VPN is now woring\n\n#### ClashX Debugging\n\n1. (ClashX Dropdown) -\u003e Setting -\u003e Debug -\u003e Open Log Folder -\u003e (Open the latest log file in a text editor)\n\n### iOS Client [(Shadowrocket)](https://apps.apple.com/us/app/shadowrocket/id932747118) (Paid: $2.99 USD)\n\nNotes on other clients (Free)\n- V2Box - V2ray Client: Not working\n- Potatso: Not working\n- v2RayTun: Not working\n- Spectre VPN: Not working\n\nShadowrocket appears to be the only iOS app that has a big enough feature set that we can correctly configure your Shadowsocks VPN.\nHowever let me know if there are any working free alternatives.\n\n1. Add Server\n   - Address: IP/Custom Domain\n   - Port: 443\n   - Password: Configured Password\n   - Method: aes-256-cfb\n   - Obfuscation: none\n   - Plugin: v2ray-plugin\n   - One Time Auth: Off\n   - TCP Fast Open: Off\n   - UDP Relay: Off\n   - Remarks: *some-name*\n\n3. v2ray-plugin details:\n   - Address: None\n   - Port: None\n   - Mode: websocket\n   - TLS: True\n   - Allow Insecure: True (or false is you have setup Lets Encrypt on your server instead of a self-siged one)\n   - SNI: None\n   - TCP Fast Open: Off\n   - Muxing: On\n   - Path: /\n\n3. Save Server\n\n4. Settings -\u003e Proxy Settings:\n   - Compatability Mode: On\n   - Proxy Type: None\n   - Proxy Port: 7890\n   - Proxy Address: 127.0.0.1\n  \n5. (Optional) Settings -\u003e Tunnel (Up to you depending on your use case)\n   - Enforce Routes: On\n   - Include All Networks: True\n   - Include Local Networks: True\n   - Include APNs: False\n   - Include Cellular Services: True\n  \n6. Settings -\u003e Test Method -\u003e Connect\n\n7. Tap *Connectivity Test*: If Green or Yellow with XXXms then you are good to go!\n\n#### iOS Shadowrocket Debuging\n\n1. Settings -\u003e Diagnostics -\u003e Enable Logging -\u003e Visit Address (https://...../7890/api/log) via a Web Browser\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcrebbin%2Fazure-vpn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdcrebbin%2Fazure-vpn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcrebbin%2Fazure-vpn/lists"}