{"id":13376232,"url":"https://github.com/hanhui03/KidVPN","last_synced_at":"2025-03-13T02:30:40.821Z","repository":{"id":153702525,"uuid":"144546021","full_name":"hanhui03/KidVPN","owner":"hanhui03","description":"The world's smallest VPN server and client.","archived":false,"fork":false,"pushed_at":"2022-12-03T13:44:38.000Z","size":49,"stargazers_count":76,"open_issues_count":1,"forks_count":28,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-07-30T05:18:29.930Z","etag":null,"topics":["edgeros","iot","sylixos","vpn","vpn-client","vpn-free","vpn-server"],"latest_commit_sha":null,"homepage":"","language":"C","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/hanhui03.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}},"created_at":"2018-08-13T07:44:15.000Z","updated_at":"2024-07-30T05:18:29.931Z","dependencies_parsed_at":null,"dependency_job_id":"8e5af9e6-634a-40d8-bbce-725ff39f3dbb","html_url":"https://github.com/hanhui03/KidVPN","commit_stats":null,"previous_names":["acoinfo/kidvpn"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanhui03%2FKidVPN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanhui03%2FKidVPN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanhui03%2FKidVPN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanhui03%2FKidVPN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hanhui03","download_url":"https://codeload.github.com/hanhui03/KidVPN/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243125540,"owners_count":20240276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["edgeros","iot","sylixos","vpn","vpn-client","vpn-free","vpn-server"],"created_at":"2024-07-30T05:02:36.173Z","updated_at":"2025-03-13T02:30:40.814Z","avatar_url":"https://github.com/hanhui03.png","language":"C","funding_links":[],"categories":["\u003ca id=\"d62a971d37c69db9f3b9187318c3921a\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"8ea8f890cf767c3801b5e7951fca3570\"\u003e\u003c/a\u003e公网访问局域网"],"readme":"# KidVPN  \nThe world's smallest VPN server and client (For SylixOS and Linux).  \n\n## Configure File  \n* Configure file is a ini format:  \n\u003e \n|keywords| description |  \n|:----:|:----|  \n|**mode**|KidVPN run mode, `'server'` or `'client'`|\n|**key_file**|KidVPN AES Key file|\n|**iv_file**|Cipher initial vector (Optional default use ECB)|\n|**vnd_id**|Virtual network device ID (Only for SylixOS)|\n|**tap_name**|Virtual network device name (Only for Linux)|\n|**mtu**|`1280` ~ `1472` (Optional default: `1464`)|\n|**local_ip**|Local IP address (Only for Server)|\n|**server**|Server IP address (Only for Client)|\n|**port**|Local port (Optional default: `10088`)|\n|**hole_punching**|UDP Hole punching (Optional default: `0`)|\n\n \\* *If too many client in one VPN net you can use UDP hole punching to reduce server forwarding pressure.*\n\n* Server configure like this:\n``` ini\n[server_0]\nmode=server\nkey_file=serv.key\niv_file=serv.iv\nvnd_id=0\ntap_name=tap0\nmtu=1464\nlocal_ip=192.168.0.1\nport=10088\n```\n\n* Client configure like this:\n``` ini\n[client_0]\nmode=client\nkey_file=cli.key\niv_file=cli.iv\nvnd_id=0\ntap_name=tap0\nmtu=1464\nserver=123.123.123.123\nport=10088\n```\n\n \\* KidVPN daemon allow dynamic update of IV parameters using `SIGUSR1` signal.*\n\n## For SylixOS\n* Step 1: Add vnd interface parameter in **/etc/ifparam.ini**\n``` ini\n[vnd-X]\n# X is a number of vnd ID)\nenable=1\n# Enable(up) this interface\nipaddr=x.x.x.x\n# Virtual network ip address\nnetmask=x.x.x.x\n# Virtual network netmask\nmac=xx:xx:xx:xx:xx:xx\n# Virtual network MAC address, If not, the system will use random numbers\n```\n\n* Step 2: Use **'vnd'** command add a virtual net device.\n``` sh\nvnd add X\n# X is a number of vnd ID\n```\n\n* Step 3: Use **'kidvpn'** to create a VPN connect.\n``` sh\nkidvpn x.ini sector password\n# 'x.ini' is vpn config file, 'sector' is ini sector which we will use, 'password' is password\n```\n\n* Step 4: Use **'route'** command add some route entry to system, make route rules.\n\n## For Linux\n* Prepare for work:\n``` sh\nsudo apt-get install openssl\n# Install OpenSSL library\n\nsudo apt-get install libssl-dev\n# Install OpenSSL develop library\n\nmake\n# Build kidvpn target\n```\n\n* Step 1: Add tap interface\n``` sh\nsudo tunctl -t tapX -u root\n# X is tap number\n\nsudo ifconfig tapX up\n# Enable tapX network\n```\n\n* Step 2: Use **'ifconfig'** command set tapX address\n``` sh\nifconfig tapX inet x.x.x.x netmask x.x.x.x\n```\n\n* Step 3: Use **'kidvpn'** to create a VPN connect.\n``` sh\nsudo ./kidvpn x.ini sector password\n# 'x.ini' is vpn config file, 'sector' is ini sector which we will use, 'password' is password\n```\n\n* Step 4: Use **'route'** command add some route entry to system, make route rules.\n\nEnjoy yourself \\^\\_\\^\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanhui03%2FKidVPN","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhanhui03%2FKidVPN","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanhui03%2FKidVPN/lists"}