{"id":19146062,"url":"https://github.com/liulilittle/openppp2","last_synced_at":"2026-04-05T07:01:14.996Z","repository":{"id":178000664,"uuid":"661196892","full_name":"liulilittle/openppp2","owner":"liulilittle","description":"Next-generation security network access technology, providing high-performance Virtual Ethernet tunneling service.","archived":false,"fork":false,"pushed_at":"2026-03-29T01:49:21.000Z","size":3451,"stargazers_count":117,"open_issues_count":1,"forks_count":30,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-03-29T04:32:16.534Z","etag":null,"topics":["c","cpp","dns","eth","go","icmp","ip","ipv6","mux","nat","net","ppp","proxy","tap","tcp","tun","udp","vnet","vpn"],"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/liulilittle.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-02T05:06:01.000Z","updated_at":"2026-03-29T01:49:27.000Z","dependencies_parsed_at":"2025-05-07T02:03:52.026Z","dependency_job_id":"865e3f19-d325-4a99-9008-d9e59f2d63b5","html_url":"https://github.com/liulilittle/openppp2","commit_stats":null,"previous_names":["liulilittle/ppp-2"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/liulilittle/openppp2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liulilittle%2Fopenppp2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liulilittle%2Fopenppp2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liulilittle%2Fopenppp2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liulilittle%2Fopenppp2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liulilittle","download_url":"https://codeload.github.com/liulilittle/openppp2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liulilittle%2Fopenppp2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31427386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T02:22:46.605Z","status":"ssl_error","status_checked_at":"2026-04-05T02:22:33.263Z","response_time":75,"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":["c","cpp","dns","eth","go","icmp","ip","ipv6","mux","nat","net","ppp","proxy","tap","tcp","tun","udp","vnet","vpn"],"created_at":"2024-11-09T07:43:00.511Z","updated_at":"2026-04-05T07:01:14.959Z","avatar_url":"https://github.com/liulilittle.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# \u003cimg src=\"https://img.icons8.com/color/48/000000/vpn.png\" width=\"30\" height=\"30\"\u003e PPP PRIVATE NETWORK™ 2  \r\n**Enterprise-grade Virtual Ethernet VPN Solution**  \r\nNext-generation security network access technology, providing high-performance Virtual Ethernet tunneling service.\r\n\r\n\u003cdiv align=\"right\" style=\"margin-top:-40px;\"\u003e\r\n  \u003ckbd\u003e\r\n    \u003ca href=\"README_CN.md\"\u003e简体中文\u003c/a\u003e\r\n  \u003c/kbd\u003e\r\n  \u003ckbd style=\"background:#0366d6;\"\u003e\r\n    \u003cstrong\u003eEnglish\u003c/strong\u003e\r\n  \u003c/kbd\u003e\r\n\u003c/div\u003e\r\n\r\n## \u003cimg src=\"https://img.icons8.com/color/48/000000/features-list.png\" width=\"30\" height=\"30\"\u003e Core Technology Features\r\n\r\n\u003cdiv style=\"display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px;\"\u003e\r\n\r\n\u003cdiv\u003e\r\n\r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/processor.png\" width=\"20\" height=\"20\"\u003e **Synchronous Hyper-threaded IO Technology**  \r\n- \u003cimg src=\"https://media.istockphoto.com/id/1469980757/vector/cloud-multi-threading-icon-in-vector-logotype.jpg?s=612x612\u0026w=0\u0026k=20\u0026c=SgJXI9dkgy1l__U4m4H7Y2SJuCEJk53VpZvwxYqQqDg=\" width=\"20\" height=\"20\"\u003e **Full Coroutine + Multithread Architecture**  \r\n- \u003cimg src=\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTIHdQXotRNOMUnypnmpRRAMGiTmgtnvmaEOw\u0026s\" width=\"20\" height=\"20\"\u003e **Supports Printable Plain Text Transmission**  \r\n- \u003cimg src=\"https://img.ixintu.com/download/jpg/20201107/570f5ecbfba462cec0568a98693aa8cc_512_321.jpg!con\" width=\"20\" height=\"20\"\u003e **Full Duplex/Half Duplex Tunnels**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/network.png\" width=\"20\" height=\"20\"\u003e **VPN Virtual Subnet**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/port.png\" width=\"20\" height=\"20\"\u003e **Port Mapping to Public Network P-NAT2**  \r\n- \u003cimg src=\"https://cdn-icons-png.flaticon.com/512/7349/7349720.png\" width=\"20\" height=\"20\"\u003e **Forward Proxy Support**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/firewall.png\" width=\"20\" height=\"20\"\u003e **Virtual Firewall**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/route.png\" width=\"20\" height=\"20\"\u003e **Virtual BGP Multi-line Diversion**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/domain.png\" width=\"20\" height=\"20\"\u003e **Domain Name Query Diversion**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/router.png\" width=\"20\" height=\"20\"\u003e **Native Support for Soft Routers**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/airplane-mode-on.png\" width=\"20\" height=\"20\"\u003e **PaperAirplane Layering Technology**  \r\n\u003c/div\u003e\r\n\r\n\u003cdiv\u003e\r\n\r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/network-card.png\" width=\"20\" height=\"20\"\u003e **Dual Network Protocol Stack Support**  \r\n- \u003cimg src=\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTjxlVdSXIeMvmISIN0dupsU60ISjdSyxN7xw\u0026s\" width=\"20\" height=\"20\"\u003e **Broadcast Support (Non-Unicast)**  \r\n- \u003cimg src=\"https://www.shutterstock.com/image-vector/tunnel-sign-multi-series-style-260nw-2440158425.jpg\" width=\"20\" height=\"20\"\u003e **Support for Multiple Tunnel Protocols**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/merge.png\" width=\"20\" height=\"20\"\u003e **MUX Multiplexing**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/dns.png\" width=\"20\" height=\"20\"\u003e **DNS Caching**  \r\n- \u003cimg src=\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSyLWW0UbSGujy4OkGa0oHvN1Ad1_YXmZGIgSHlpHz1K0-u6a_mYbw84I_aZJA8IzB-jLg\u0026usqp=CAU\" width=\"20\" height=\"20\"\u003e **Dedicated Virtual Memory**  \r\n- \u003cimg src=\"https://cdn-icons-png.flaticon.com/512/10988/10988147.png\" width=\"20\" height=\"20\"\u003e **CDN Forwarding Support**  \r\n- \u003cimg src=\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS8vZjAno4KJAxr9K97IzoIGQiJ1ajH9FQOyA\u0026s\" width=\"20\" height=\"20\"\u003e **VPN Turbo**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/fast-forward.png\" width=\"20\" height=\"20\"\u003e **TCP Fast Open**  \r\n- \u003cimg src=\"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ2LHYDgAPNDQrrF-Es68XphlSUJ1XBbqKdpw\u0026s\" width=\"20\" height=\"20\"\u003e **Fixed Window Size Setting**  \r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/forward.png\" width=\"20\" height=\"20\"\u003e **VPN Server Proxy Forwarding**  \r\n- \u003cimg src=\"https://play-lh.googleusercontent.com/Ac2LuYFUdHoiSZOVDwnlp0ozwCBMqBC7GALSUevSsQxEtq6eMVCSEGxa7FuEqXnjlw\" width=\"20\" height=\"20\"\u003e **UDP Multi-line Bandwidth Aggregation**  \r\n\r\n\u003c/div\u003e\r\n\r\n\u003c/div\u003e\r\n\r\n---\r\n\r\n## \u003cimg src=\"https://img.icons8.com/color/48/000000/globe.png\" width=\"30\" height=\"30\"\u003e Platform Support\r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/windows8.png\" width=\"20\" height=\"20\"\u003e Windows\r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/linux.png\" width=\"20\" height=\"20\"\u003e Linux\r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/mac-logo.png\" width=\"20\" height=\"20\"\u003e macOS\r\n- \u003cimg src=\"https://img.icons8.com/color/24/000000/android-os.png\" width=\"20\" height=\"20\"\u003e Android\r\n\r\n## \u003cimg src=\"https://img.icons8.com/color/48/000000/processor.png\" width=\"30\" height=\"30\"\u003e Supported CPU Architectures\r\n- **x86 Series**  \r\n  i386 · x86_64\r\n- **ARM Series**  \r\n  armv7l · armv7a · aarch64\r\n- **Other Architectures**  \r\n  s390x · mipsel · ppc64el · riscv64\r\n\r\n---\r\n\r\n## \u003cimg src=\"https://img.icons8.com/color/48/000000/warning-shield.png\" width=\"30\" height=\"30\"\u003e User License Agreement\r\n### ✅ Authorized User Groups\r\n\u003cdetails open\u003e\r\n\u003csummary\u003eClick to view authorized user categories\u003c/summary\u003e\r\n\r\n1. 🎓 Academic Researchers  \r\n2. 💻 Software Engineers  \r\n3. 🌐 Network Engineers  \r\n4. 🏢 Enterprise Users  \r\n5. 🔬 Scientific and Technical Personnel  \r\n6. 📦 Foreign Trade Users  \r\n7. 🏛️ Government and Corporate Personnel  \r\n8. 🎮 Gamers  \r\n9. 🏬 Group Clients  \r\n10. 🏣 Public Organizations  \r\n11. ➰ Communication Technology  \r\n12. ☁️ IT and Internet Users  \r\n13. 🔒 Network Security Users  \r\n14. 📝 Health Content Creators  \r\n15. 🌍 Users outside Mainland China\r\n\u003c/details\u003e\r\n\r\n\u003e ⚠️ **Usage Restrictions Warning**  \r\n\u003e \u003cimg src=\"https://static-00.iconduck.com/assets.00/user-2-account-icon-256x256-k637t3vb.png\" width=\"20\" height=\"20\"\u003e **Use by other users violates the agreement**  \r\n\u003e \u003cimg src=\"https://img.icons8.com/color/24/000000/law.png\" width=\"20\" height=\"20\"\u003e Unauthorized use will bear legal responsibility\u003c/img\u003e\r\n\r\n### ⚠️ Eight Categories of Prohibited Behaviors and Legal Details\r\n\r\n#### 🚫 Classification and Legal Basis of Prohibited Behaviors  \r\n| Behavior Type     | Specific Scenario                     | Legal Basis                                                                   | Technical Features                |  \r\n|-------------------|----------------------------------------|-------------------------------------------------------------------------------|----------------------------------|  \r\n| **Political Security** | Subverting the government/splitting | Article 105 of the Criminal Law (Subversion of State Power) | Communication via Tor dark web nodes/encrypted political channels |  \r\n| **Pornography Crimes** | Child pornography/cross-border prostitution | Article 364 of the Criminal Law (Dissemination of Obscene Materials) + US FOSTA Act | Hash value matching/specific payment patterns |  \r\n| **Gambling Operations** | Virtual currency casinos/money laundering | Article 303 of the Criminal Law (Gambling Crime) + Seychelles Gambling Act Article 45 | High-frequency small transfers/fixed odds interfaces |  \r\n| **Drug Trafficking** | Dark web drug markets/poison tutorials | Article 347 of the Criminal Law (Drug Crime) + US Controlled Substances Act §841 | I2P network traffic/Bitcoin mixers |  \r\n| **Human Trafficking** | Trafficking of labor/sexual exploitation | Article 240 of the Criminal Law (Trafficking in Women and Children) + UN Palermo Protocol | Fake recruitment websites/transnational communication groups |  \r\n| **Financial Crimes** | Virtual currency laundering/selling \"Four Pieces\" | Article 191 of the Criminal Law (Money Laundering) + US Bank Secrecy Act | Dispersed aggregate transactions/Multilevel shell wallets |  \r\n| **Telecom Fraud** | Impersonation of police/legal officers/scams | Article 38 of the Anti-Telecommunications Fraud Law + US FCC 47 CFR §64.1200 | VOIP spoofing/phishing page fingerprints |  \r\n| **Illegal Transactions** | Forgery of KYC/user privacy sale | Article 66 of the Personal Information Protection Law + EU GDPR Article 83 | Database breaches/batch identity authentication requests |  \r\n\r\n### ⚖️ Cross-Region Legal Supervision and Accountability Mechanism (Cross-border Judicial Enforcement Framework)\r\n\r\n| **Jurisdiction** | **Law Enforcement Body** | **Core Legal Tools** | **Sentencing Standards** | **Cross-national Cooperation Mechanism** |  \r\n|-------------------|--------------------------|-----------------------|------------------------|----------------------------------------|  \r\n| **Mainland China** | Public Security Department Cybersecurity Bureau | Article 191 of the Criminal Law (Money Laundering) | - Money Laundering: **10 years imprisonment + 5 times involved amount fine**\u003cbr\u003e- Harm to State Security: **Life imprisonment** | Via Interpol Red Notices for extradition |  \r\n| **USA** | FBI Cyber Crime Division | Computer Fraud and Abuse Act (CFAA 18 U.S.C. §1030) | - Financial Crimes: **Up to 20 years imprisonment**\u003cbr\u003e- Child Pornography: **Minimum 25 years mandatory** (mandatory sentencing) | Under the CLOUD Act for cross-border data requests |  \r\n| **Seychelles** | FIU Financial Intelligence Unit | Anti-Money Laundering Law 2020, Article 15 | - Illegal gambling: **5 years imprisonment + $100,000 fine**\u003cbr\u003e- Data crimes: **Daily $10,000 progressive fines** | Commonwealth judicial mutual assistance treaties for automatic enforcement |  \r\n\r\n#### 🌐 Cross-border Investigation and Evidence Collection Process (GitHub Compatible Version)\r\n\r\n##### ⏱️ Forensics Timeline\r\n| Step | Initiator | Receiver | Action | Legal Basis | Time Limit |  \r\n|-------|------------|----------|---------|--------------|------------|  \r\n| 1 | National Security Authority | FBI | Share crime evidence chain | MLAT judicial assistance agreement | 72 hours |  \r\n| 2 | FBI | Seychelles FIU | Issue freezing order for encrypted assets | Anti-Money Laundering Law 2020, Article 15 | Immediate |  \r\n| 3 | Seychelles FIU | Cloud Service Provider | Execute data seizure order | Seychelles Criminal Justice Mutual Assistance Law, Article 8 | 72 hours |  \r\n| 4 | Cloud Service Provider | Developer | Request judicial assistance (metadata only) | 18 U.S.C. § 2703(f) (Stored Communications Act) | 15 working days |  \r\n| 5 | Developer | Interpol | Submit GitHub commit logs | GPL-3.0 Articles 15-17 (No Warrant Clause) | Immediate |  \r\n| 6 | Interpol | Cross-border Courts | Submit joint blockchain evidence prosecution | United Nations Convention against Corruption, Article 46 | 30 days |  \r\n\r\n##### 🔗 Key Evidence Handover Nodes\r\n```diff\r\n! Evidence Chain 1: Encrypted Asset Flow Map\r\n+ Submitted to: Seychelles FIU\r\n- Technical Means: Chainalysis on-chain tracing\r\n# Legal Validity: 《Anti-Money Laundering Law 2020》 Annex 3\r\n\r\n! Evidence Chain 2: GitHub Development Logs\r\n+ Submitted to: INTERPOL Digital Crime Division\r\n- Technical Verification: GPG signatures + Timestamps\r\n# Legal Validity: The Hague Electronic Evidence Convention\r\n```\r\n\r\n### ⚠️ User Legal Risk Tips\r\n\r\n+ **For Chinese Users:**  \r\n   - Under Article 38 of the Anti-Telecommunications Fraud Law, involved accounts are **jointly frozen with family members' bank cards**  \r\n   - Actions harming national security fall under Article 113 of the Criminal Law, **possible death penalty**  \r\n   - Illegal cross-border data transmission triggers Article 45 of the Data Security Law, **up to 5 million RMB fine + license revocation**  \r\n\r\n+ **For US Users:**  \r\n   - The FBI initiates \"Unilateral Jurisdiction\" (based on USD settlement channels), **no extradition needed for direct prosecution**  \r\n   - Child pornography cases invoke 18 U.S.C. §2251, **minimum 25-year sentence**  \r\n   - Financial crimes apply the RICO Act, **asset confiscation**  \r\n\r\n+ **For Seychelles Users:**  \r\n   - Offshore company controllers are **personally unlimited liable** (Pierce Corporate Veil principle)  \r\n   - Violations of Article 7 of the Anti-Money Laundering Law 2020 result in **$10,000 daily progressive fines**  \r\n   - Dark web transactions under Article 88 of the ICT Law, **minimum 10-year sentence without parole**  \r\n\r\n#### ⚠️ Real Cases of Consequences for Violations  \r\n\r\n#### 💼 Virtual Currency Money Laundering Cases  \r\n| Jurisdiction | Case Details | Penalty Results | Technical Evidence Methods |  \r\n|----------------|----------------|------------------|------------------------------|  \r\n| **Mainland China** | Zhao Dong Case (OTC merchant) | Fine **¥23 million** + **7 years imprisonment** | Chain analysis of mixer funds |  \r\n| **USA** | BitMEX Exchange Case | CEO **30 months** imprisonment + $10 million personal fine | Analysis of Kraken exchange API logs |  \r\n| **Seychelles** | OneCoin (VICoin) Ponzi Scheme | **Seized 35 offshore accounts** + globally wanted principal | SWIFT cross-border payment records analysis |  \r\n\r\n#### 🎲 Cross-border Gambling Operations  \r\n| Jurisdiction | Case Details | Penalty Results | Evidence Methods |  \r\n|----------------|----------------|------------------|------------------|  \r\n| **Mainland China** | Yabo Sports Platform Case | Recovered **¥3.8 billion** + **Life imprisonment** for main offenders | Alipay merchant transaction analysis |  \r\n| **USA** | Bovada Gambling Platform | **Seized $100 million assets** + domain suspension | Cloudflare logs matching DDoS attack patterns |  \r\n| **Seychelles** | Bet365 Seychelles Branch | **License revoked** + fine of **$3 million** | Server leasing contract tracing |  \r\n\r\n#### 📊 Data Selling and Privacy Crimes  \r\n| Jurisdiction | Case Details | Penalty Results | Evidence Methods |  \r\n|----------------|----------------|------------------|------------------|  \r\n| **Mainland China** | Koala Credit Investigation | CEO **3 years** + company **¥50 million** fine | Database access logs audit |  \r\n| **USA** | Equifax Data Breach | **$700 million compensation** + permanent cybersecurity oversight | Exploit traffic analysis |  \r\n| **Seychelles** | Seychelles Data Hub Case | **Forced liquidation** + executives extradited to US | AWS S3 access logs analysis |  \r\n\r\n#### ⚠️ Compound Punishment Cases of Eight Types of Crimes  \r\n| Case Name | Crime Composition | Punishment Results Across Three Countries |  \r\n|-------------|---------------------|----------------------------------------------|  \r\n| Galaxy International Case | Gambling + Money Laundering + Cross-border Payments | China: **Death sentence with reprieve**\u003cbr\u003eUS: **Seized NYC property**\u003cbr\u003eSeychelles: **Deregistered 378 shell companies** |  \r\n| DarkScandals Case | Child Pornography + Bitcoin Money Laundering + VPN Obfuscation | US: **175 years imprisonment for the first offender**\u003cbr\u003eChina: **Seized mining farms**\u003cbr\u003eSeychelles: **Frozen $120M in crypto assets** |  \r\n\r\n### 📜 Developer Disclaimer  \r\n/* Validated by cross-jurisdictional judicial practice */  \r\n1. **Technology Neutral Principle**  \r\n   This tool is a network protocol pure technical implementation (RFC 8446 standard), developers:  \r\n   - Do not operate any servers  \r\n   - Do not store user traffic logs  \r\n   - Do not provide commercial support services  \r\n\r\n2. **Illegal Responsibility Separation Mechanism**  \r\n   ```mermaid\r\n   graph LR\r\n      User_Actions--\u003eISP[Network Service Provider]\r\n      Developer--\u003eCode[GitHub Repository]\r\n      Judicial_Forensics--\u003eISP\r\n      Developer-.No_Access.-\u003eUser_Actions\r\n   ```\r\n\r\n### ⚖️ Judicial Cooperation Limitation Statement  \r\n\r\n#### 📜 Developer Compliance Cooperation Framework  \r\n   ```mermaid\r\n   graph LR\r\n        A[Law Enforcement Request] --\u003e B{Meets Legal Threshold}\r\n        B --\u003e|Yes| C[Provide Limited Materials]\r\n        B --\u003e|No| D[Written Rejection and Filing]\r\n        C --\u003e E[Record Material Delivery]\r\n        D --\u003e F[Judicial Remedy Procedures]\r\n        classDef green fill:#d6f5d6,stroke:#28a745\r\n        classDef red fill:#ffd6cc,stroke:#dc3545\r\n        class C,E green\r\n        class D,F red\r\n   ```\r\n\r\n### ⚖️ Cross-Jurisdiction Judicial Cooperation Details\r\n\r\n| Jurisdiction | Legal Collection Threshold | Provided Materials | Delivery Time Limit | Refusal Basis |  \r\n|----------------|------------------------------|----------------------|---------------------|--------------|  \r\n| **Mainland China** | Provincial Cybersecurity Department \"Evidence Retrieval Notice\" + \"Assistance Investigation Letter\" | 1. GitHub commit history metadata\u003cbr\u003e2. Code digital signature certificates\u003cbr\u003e3. Open source license copies | 15 working days | Article 28 of the Cybersecurity Law |  \r\n| **USA** | FISA Court Section 702 directive + DOJ endorsement | 1. PGP-signed files\u003cbr\u003e2. CI/CD build logs\u003cbr\u003e3. Third-party audit reports | 72 hours | Fourth Amendment + DMCA 512(f) |  \r\n| **Seychelles** | Supreme Court Mutual Assistance Order + FIU Anti-Money Laundering Letter | 1. GPL-3.0 notarization\u003cbr\u003e2. Contributor CLA agreement\u003cbr\u003e3. Copyright registration | 30 calendar days | Article 41 of the Electronic Transactions Law |  \r\n\r\n#### ⚠️ Non-cooperation Situations  \r\n- No formal judicial documents, only oral/email requests  \r\n- Requests for user traffic logs or communication content  \r\n- Requests for non-public code design documents  \r\n- Cross-border requests without Hague certification  \r\n+ **Compliance Response**: Immediately activate the \"Judicial Defense Plan\" Chapter 7 process\r\n\r\n### ⚔️ Judicial Cooperation Emergency Plan  \r\n+ **Judicial Freeze Response**  \r\n  Upon receiving forensic requests, execute immediately:  \r\n  ```bash\r\n  # Freeze GitHub repository to prevent modification\r\n  gh api repos/liulilittle/openppp2/actions/permissions --method PUT -f enabled=false\r\n  # Activate legal protection branch\r\n  git checkout -b legal_lockdown\r\n  git push origin --force legal_lockdown\r\n  ```\r\n\r\n### 🎣 Anti-Phishing Verification Process ###\r\n```diff\r\n+ Step1: Extract judicial document digital signature\r\n+ Step2: Verify with CNNIC/GlobalSign root certificates\r\n- Step3: If verification fails, immediately trigger judicial alert\r\n! Step4: Send violation report to EFF\r\n```\r\n\r\n---\r\n\r\n## \u003cimg src=\"https://img.icons8.com/color/48/000000/command-line.png\" width=\"30\" height=\"30\"\u003e Command Line Interface\r\n### ⚙️ General Commands\r\n\r\n| Command | Function | Format | Default |\r\n|---------|----------|--------|---------|\r\n| `--rt` | Real-time mode | `--rt=[yes｜no]` | `yes` |\r\n| `--dns` | Set DNS servers | `--dns \u003cIP list\u003e` | `8.8.8.8,8.8.4.4` |\r\n| `--tun-flash` | Enable advanced QoS control | `--tun-flash=[yes｜no]` | `no` |\r\n| `--pull-iplist` | Download country IP list | `--pull-iplist [file]/[country]` | `./ip.txt/CN` |\r\n| `--config` | Configuration file path | `--config \u003cfile path\u003e` | `./appsettings.json` |\r\n| `--mode` | Run mode | `--mode=[client｜server]` | `server` |\r\n\r\n\u003e 🔗 **IP List Data Source**: [APNIC Official List](http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest)\r\n\r\n---\r\n\r\n### 🖥️ Server Commands\r\n\r\n| Command | Function | Format | Default |\r\n|---------|----------|--------|---------|\r\n| `--firewall-rules` | Firewall rules file | `--firewall-rules \u003cfile\u003e` | `./firewall-rules.txt` |\r\n\r\n---\r\n\r\n### 💻 Client Commands\r\n\r\n#### Core Settings\r\n| Command | Function | Format | Default |\r\n|---------|----------|--------|---------|\r\n| `--lwip` | [Protocol stack selection](#network-protocol-static-guide) | `--lwip=[yes｜no]` | Windows: `yes`\u003cbr\u003eOthers: `no` |\r\n| `--vbgp` | Intelligent routing diversion | `--vbgp=[yes｜no]` | `yes` |\r\n| `--nic` | Specify physical network card | `--nic \u003cname\u003e` | Auto |\r\n| `--ngw` | Force gateway address | `--ngw \u003cIP\u003e` | Auto |\r\n\r\n#### Virtual Network Card\r\n| Command | Function | Format | Default |\r\n|---------|----------|--------|---------|\r\n| `--tun` | Network card name | `--tun \u003cname\u003e` | [Platform related](#network-card-name-default-guide) |\r\n| `--tun-ip` | IP address | `--tun-ip \u003cIP\u003e` | `10.0.0.2` |\r\n| `--tun-gw` | Gateway address | `--tun-gw \u003cIP\u003e` | `10.0.0.1` |\r\n| `--tun-mask` | Subnet mask | `--tun-mask \u003cbits\u003e` | `30` |\r\n| `--tun-mask` | Preferred network | `--tun-host=[yes｜no]` | `yes` |\r\n\r\n#### Advanced Features\r\n| Command | Function | Format | Default |\r\n|---------|----------|--------|---------|\r\n| `--tun-mux` | MUX connection count | `--tun-mux \u003c`[connections](#mux-connection-number-guide)`\u003e` | `0` |\r\n| `--tun-mux-acceleration` | MUX acceleration | `--tun-mux-acceleration \u003c`[mode](#mux-acceleration-mode-guide)`\u003e` | `0` |\r\n| `--tun-vnet` | Subnet forwarding | `--tun-vnet=[yes｜no]` | `yes` |\r\n| `--tun-ssmt` | Hyper-threading optimization | `--tun-ssmt=[`[thread count](#ssmt-threading-number-guide)`]/[`[mode](#ssmt-threading-optimize-mode-guide)`]` | `4/st` |\r\n| `--tun-static` | [Static Tunnel](#udp-static-aggligator) | `--tun-static=[yes｜no]` | `no` |\r\n| `--link-restart` | Link reconnection times | `--link-restart=[times]` | `0` |\r\n| `--block-quic` | Block QUIC traffic | `--block-quic=[yes\\|no]` | `no` |\r\n| `--auto-restart` | Auto-restart program | `--auto-restart=[seconds]` | `0` |\r\n\r\n#### Routing Settings\r\n| Command | Function | Format | Default Value |\r\n|---------|----------|--------|--------------|\r\n| `--bypass` | Bypass list | `\u003cfile1\\|file2\u003e` | `./ip.txt` |\r\n| `--bypass-nic` | Specify interface for bypass list | `\u003cnetwork interface\u003e` | |\r\n| `--bypass-ngw` | Specify gateway for bypass list | `\u003cIP\u003e` | `0.0.0.0` |\r\n| `--virr` | Auto-update and take effect | `[file]/[country]` | `./ip.txt/CN` |\r\n| `--dns-rules` | DNS rules | `\u003cfile\u003e` | [./dns-rules.txt](#dns-rules-guide) |\r\n\r\n#### Platform Specific\r\n| Command | Platform | Function | Format | Default |\r\n|---------|---------|----------|--------|---------|\r\n| `--tun-route` | \u003cimg src=\"https://img.icons8.com/color/24/000000/linux.png\" width=\"20\"\u003e | Routing compatibility | `--tun-route=[yes｜no]` | `no` |\r\n| `--tun-protect` | \u003cimg src=\"https://img.icons8.com/color/24/000000/linux.png\" width=\"20\"\u003e | Routing protection | `--tun-protect=[yes｜no]` | `yes` |\r\n| `--tun-promisc` | \u003cimg src=\"https://img.icons8.com/color/24/000000/mac-logo.png\" width=\"20\"\u003e \u003cimg src=\"https://img.icons8.com/color/24/000000/linux.png\" width=\"20\"\u003e | Promiscuous mode | `--tun-promisc=[yes｜no]` | `yes` |\r\n\r\n---\r\n\r\n### 🪟 Windows Commands\r\n\r\n| Command | Function | Format |\r\n|---------|----------|--------|\r\n| `--system-network-reset` | Network reset | `--system-network-reset` |\r\n| `--system-network-optimization` | Performance optimization | `--system-network-optimization` |\r\n| `--system-network-preferred-ipv4` | Set IPv4 priority | `--system-network-preferred-ipv4` |\r\n| `--system-network-preferred-ipv6` | Set IPv6 priority | `--system-network-preferred-ipv6` |\r\n| `--no-lsp` | Disable LSP | `--no-lsp` |\r\n\r\n---\r\n\r\n## 📚 Global Parameters\r\n\r\n\u003ca id=\"mux-acceleration-mode-guide\"\u003e\u003c/a\u003e\r\n\r\n### \u003cimg src=\"https://img.icons8.com/color/24/000000/merge.png\" width=\"20\" height=\"20\"\u003e MUX Acceleration Mode\r\n| Value | Mode | Suitable Scene |\r\n|:--:|------|----------------|\r\n| 0 | Standard | General use |\r\n| 1 | Server Acceleration | Download-intensive |\r\n| 2 | Client Acceleration | Upload-intensive |\r\n| 3 | Bi-directional Acceleration | High-performance needs |\r\n\r\n\u003ca id=\"network-card-name-default-guide\"\u003e\u003c/a\u003e\r\n\r\n### \u003cimg src=\"https://img.icons8.com/color/512w/network-card.png\" width=\"20\" height=\"20\"\u003e Virtual Network Card Default Values\r\n| Platform | Default Value |\r\n|----------|--------------|\r\n| Windows | `PPP` |\r\n| Linux | `ppp` |\r\n| macOS | `utun0` |\r\n\r\n\u003ca id=\"ssmt-threading-optimize-mode-guide\"\u003e\u003c/a\u003e\r\n\r\n### \u003cimg src=\"https://cdn2.iconfinder.com/data/icons/elastic-search-filled-outline-1/128/Elastic_Search_36_-_Filled_Outline_-_36-20-512.png\" width=\"20\" height=\"20\"\u003e SSMT Optimization Mode\r\n| Mode | Optimization Direction |\r\n|:--:|------------------------|\r\n| st | Single connection large flow |\r\n| mq | Multi-connection high concurrency |\r\n\r\n\u003ca id=\"symbol-explanation-guide\"\u003e\u003c/a\u003e\r\n\r\n### 💾 Symbol Explanation\r\n| Symbol | Description          |\r\n|:-------|:---------------------|\r\n| `[ ]`  | Optional parameter   |\r\n| `\u003c \u003e`  | Required parameter   |\r\n| `｜`   | Option separator     |\r\n| `!`    | Not available / Disabled |\r\n\r\n\u003ca id=\"network-protocol-static-guide\"\u003e\u003c/a\u003e\r\n\r\n### 🌐 Network Protocol Stack\r\n| Type | Description |\r\n|:--------:|--------------|\r\n| `lwip` | Suitable for `Windows` |\r\n| `ctcp` | Suitable for [!](#symbol-explanation-guide)`Windows` |\r\n\r\n## \u003cimg src=\"https://img.icons8.com/color/48/000000/source-code.png\" width=\"30\" height=\"30\"\u003e Compilation Guide\r\n\r\nMust use a compiler that supports C++17, no other special requirements. Install a C++17 development environment in the standard way.\r\n\r\n### Dependency Requirements\r\n#### Minimum Dependencies  \r\n- **Boost** \u003e= 1.70 and \u003c= 1.8.6\r\n- **jemalloc** \u003e= 5.30 (Android excluded)  \r\n- **OpenSSL** \u003e= 1.1.x  \r\n\r\n#### Full Dependencies\r\n- Boost  \r\n- jemalloc  \r\n- OpenSSL  \r\n- cURL  \r\n\r\n#### Resource Addresses  \r\n- **cURL:** https://github.com/curl/curl  \r\n- **jemalloc:** https://github.com/jemalloc/jemalloc  \r\n- **openssl:** https://github.com/openssl/openssl  \r\n- **Boost:** https://www.boost.org/releases/latest\r\n\r\n### Platform Compilation Guide\r\n| Platform | Toolchain | Recommended Method | Notes |\r\n|----------|------------|----------------------|--------|\r\n| **Windows** | Visual Studio 2022 | [vcpkg](https://github.com/microsoft/vcpkg) | Use static compilation (`/MT`, `/MTd`) |\r\n| **Linux** | GCC/Clang | Manual compilation | [Reference script](https://github.com/liulilittle/openppp2/blob/main/.github/workflows/build-openppp2-for-linux-using-ubuntu-latest.yml) |\r\n| **macOS** | LLVM-Clang | Manual compilation | [Reference script](https://github.com/liulilittle/openppp2/blob/main/.github/workflows/build-openppp2-for-darwin-using-macos-latest.yml) |\r\n| **Android** | NDK r20b | Cross-compilation | [Reference script](https://github.com/liulilittle/openppp2/blob/main/.github/workflows/build-openppp2-for-android-using-ubuntu-latest-cross.yml) |\r\n\r\n### Precompiled Library Resources\r\n- **Linux**: [openppp2-ubuntu-3rd-environment](https://github.com/liulilittle/openppp2-ubuntu-3rd-environment)  \r\n- **macOS**: [openppp2-macos-amd64-environment](https://github.com/liulilittle/openppp2-macos-amd64-environment)  \r\n- **Android**: [openppp2-android-ndk-r20b-3rd-environment](https://github.com/liulilittle/openppp2-android-ndk-r20b-3rd-environment)  \r\n\r\n### Environment Requirements\r\nMust use a compiler supporting C++17, no other special requirements. Install a C++17 development environment in the standard way.\r\n\r\n---\r\n\r\n### Compilation Commands\r\n1. **Set third-party library paths**  \r\n   Modify `CMakeLists.txt` to specify dependency library directories:  \r\n   `SET(THIRD_PARTY_LIBRARY_DIR /your/actual/path)`\r\n\r\n2. **Compile and run**  \r\n    ```bash\r\n    # Linux/macOS compilation process\r\n    mkdir build \u0026\u0026 cd build\r\n    cmake .. -DCMAKE_BUILD_TYPE=Release\r\n    make -j$(nproc)  # Linux automatically detects cores\r\n    cd ../bin \u0026\u0026 ./ppp  # Run the program\r\n    ```\r\n\r\n### Preprocessor Macros\r\nANCIL_FD_BUFFER_STRUCT  \r\nEnable sendfd/recvfd shared file descriptor parent fd protection mode\r\n\r\nCURLINC_CURL  \r\nAccess HTTP/HTTPS resources via cURL library\r\n\r\nTRANSMISSION_O1  \r\nForce network transmission layer to use /O1 optimization\r\n\r\nJEMALLOC  \r\nUse jemalloc memory allocator instead of default\r\n\r\nBUDDY_ALLOC_IMPLEMENTATION  \r\nUse buddy allocator for virtual memory management\r\n\r\nSYSNAT\r\nEnable kernel NAT / TC Network Driver (TC Hairpin NATs)\r\n\r\n__MUSL__  \r\nStatically link musl-libc C++ standard library (detached from GNU/Linux libc)\r\n\r\n_LARGEFILE64_SOURCE  \r\nEnsure musl-libc supports 64-bit file functions\r\n\r\n### IO_URING Version Compilation\r\n1. Download [liburing](https://github.com/axboe/liburing) source code and install\r\n2. Uncomment the following in `CMakeLists.txt`:\r\n   ```cmake\r\n   # IF(PLATFORM_SYSTEM_LINUX) \r\n   #     ADD_DEFINITIONS(-DBOOST_ASIO_HAS_IO_URING=1)\r\n   #     ADD_DEFINITIONS(-DBOOST_ASIO_DISABLE_EPOLL=1)\r\n   # ENDIF()\r\n   ```\r\n3. Uncomment the # liburing.a line in TARGET_LINK_LIBRARIES:\r\n   ```cmake\r\n   TARGET_LINK_LIBRARIES(${NAME} \r\n       libc.a\r\n       libssl.a \r\n       libcrypto.a \r\n       libjemalloc.a\r\n       # liburing.a\r\n\r\n       atomic\r\n       dl\r\n       pthread\r\n\r\n       libboost_system.a\r\n       libboost_coroutine.a \r\n       libboost_thread.a \r\n       libboost_context.a \r\n       libboost_regex.a\r\n       libboost_filesystem.a) \r\n   ```\r\n4. Follow the standard Linux build process\r\n\r\n## 🚀 SIMD + AES_NI Optimization Implementation\r\n### Optimization Algorithms\r\n| Algorithm Name             | Implementation File Path                                                                                  |\r\n|----------------------------|-----------------------------------------------------------------------------------------------------------|\r\n| `simd-aes-128-cfb`     | [simd_aes_128_cfb.cpp](https://github.com/liulilittle/openppp2/blob/main/common/aesni/impl/simd_aes_128_cfb.cpp) |\r\n| `simd-aes-256-cfb`     | [simd_aes_256_cfb.cpp](https://github.com/liulilittle/openppp2/blob/main/common/aesni/impl/simd_aes_256_cfb.cpp) |\r\n| `simd-aes-128-gcm`     | [simd_aes_128_gcm.cpp](https://github.com/liulilittle/openppp2/blob/main/common/aesni/impl/simd_aes_128_gcm.cpp) |\r\n| `simd-aes-256-gcm`     | [simd_aes_256_gcm.cpp](https://github.com/liulilittle/openppp2/blob/main/common/aesni/impl/simd_aes_256_gcm.cpp) |\r\n\r\n**Prerequisites**  \r\n1. Only support i386/amd64 platforms  \r\n2. CPU must support AES-NI instruction set  \r\n   (PPP automatically detects CPU support via assembly instructions)\r\n\r\n**Compilation Steps**  \r\n1. Modify `CMakeLists.txt`:  \r\n   ```cmake\r\n   SET(__SIMD__ TRUE)  # Original value FALSE\r\n   ```\r\n2. Follow standard Linux build process:\r\n    ```bash\r\n    mkdir build \u0026\u0026 cd build\r\n    cmake .. -DCMAKE_BUILD_TYPE=Release\r\n    make -j $(nproc) \r\n    ```\r\n\r\n**Notes**  \r\n- Only support i386/amd64; other platforms will fail to compile when enabled  \r\n- CPU must support AES-NI instructions (PPP auto-detects)  \r\n- Only optimize the following algorithms:  \r\n  - `simd-aes-128-cfb`  \r\n  - `simd-aes-256-cfb`  \r\n  - `simd-aes-128-gcm`  \r\n  - `simd-aes-256-gcm`  \r\n- After modifying `CMakeLists.txt`, full recompile:\r\n  ```bash\r\n  rm -rf build \u0026\u0026 mkdir build \u0026\u0026 cd build\r\n  cmake .. -DCMAKE_BUILD_TYPE=Release\r\n  make clean \u0026\u0026 make -j $(nproc)\r\n  ```\r\n\r\n---\r\n\r\n## 🌐 Configuration Files\r\n### 🌍 Global Settings\r\n\r\n| Parameter Name | Type   | Default Value | Description                                | Applicable             |\r\n|------------------|--------|-----------------|--------------------------------------------|------------------------|\r\n| concurrent       | int    | 1               | [Concurrency Thread Number](#concurrent-number-guide) | `client｜server`     |\r\n| cdn              | array  | [80, 443]       | List of CDN ports                          | `server`               |\r\n\r\n### 🔑 Encryption Settings (key)\r\n| Parameter Name  | Type    | Example Value       | Description                     | Consistency | Applicable          |\r\n|-----------------|---------|---------------------|---------------------------------|--------------|---------------------|\r\n| kf              | int     | 154543927           | Key generation factor           | Mandatory    | `client｜server`   |\r\n| kx              | int     | 128                 | Interleaving factor              | Optional     | `client｜server`   |\r\n| kl              | int     | 10                  | Minimum NOP bits                 | Optional     | `client｜server`   |\r\n| kh              | int     | 12                  | Maximum NOP bits                 | Optional     | `client｜server`   |\r\n| sb              | int     | 1000                | Dynamic sliding window size (bytes) | Optional | `client｜server`   |\r\n| protocol        | string  | aes-128-cfb         | Protocol layer encryption algorithm | Mandatory | `client｜server`   |\r\n| protocol-key    | string  | N6HMzdUs7IUnYHwq    | Protocol layer encryption key   | Mandatory    | `client｜server`   |\r\n| transport       | string  | aes-256-cfb         | Transport layer encryption algorithm | Mandatory | `client｜server`   |\r\n| transport-key   | string  | HWFweXu2g5RVMEpy    | Transport layer encryption key  | Mandatory    | `client｜server`   |\r\n| masked          | bool    | false               | Enable traffic obfuscation      | Mandatory    | `client｜server`   |\r\n| plaintext       | bool    | false               | Allow plaintext transmission    | Mandatory    | `client｜server`   |\r\n| delta-encode    | bool    | false               | Enable delta encoding           | Mandatory    | `client｜server`   |\r\n| shuffle-data    | bool    | false               | Enable data randomization       | Mandatory    | `client｜server`   |\r\n\r\n### 📡 Network Interfaces (ip)\r\n| Parameter Name | Type   | Example Value   | Description                       | Applicable             |\r\n|------------------|--------|-----------------|-----------------------------------|------------------------|\r\n| public           | string | 192.168.0.24    | Public IP Address                 | `server`               |\r\n| interface        | string | 192.168.0.24    | Local Listening Interface IP      | `server`               |\r\n\r\n### 💾 Virtual Memory (vmem)\r\n| Parameter | Type   | Example Value | Description                  | Applicable       | Platform           |\r\n|-------------|--------|----------------|------------------------------|------------------|--------------------|\r\n| size        | int    | 4096           | Memory pool size (MB)        | `client｜server` | `all`              |\r\n| path        | string | \"./{}\"        | Path for memory file storage | `client｜server` | [!](#symbol-explanation-guide)`windows`         |\r\n\r\n### 🔌 TCP Configuration\r\n| Parameter Name       | Type   | Example Value | Description                          | Applicable             |\r\n|----------------------|--------|----------------|--------------------------------------|------------------------|\r\n| inactive.timeout     | int    | 300            | Idle timeout for the connection (seconds) | `client｜server`     |\r\n| connect.timeout      | int    | 5              | Connection establishment timeout (seconds) | `client｜server`  |\r\n| connect.nexcept      | int    | 4              | Random extension range for connection timeout (seconds) | `client｜server` |\r\n| listen.port          | int    | 20000          | Listening port                       | `client｜server`       |\r\n| cwnd                 | int    | 0              | Congestion window size (auto-adjusted) | `client｜server`  |\r\n| rwnd                 | int    | 0              | Receive window size (auto-adjusted)  | `client｜server`       |\r\n| turbo                | bool   | true           | Enable TCP acceleration              | `client｜server`       |\r\n| backlog              | int    | 511            | Maximum pending connections          | `client｜server`       |\r\n| fast-open            | bool   | true           | Enable TCP Fast Open                 | `client｜server`       |\r\n\r\n### 📶 UDP Settings\r\n| Parameter Name      | Type   | Example Value                | Description                        | Applicable             |\r\n|---------------------|--------|------------------------------|------------------------------------|------------------------|\r\n| cwnd               | int    | 0                            | Congestion Window Size             | `client｜server`       |\r\n| rwnd               | int    | 0                            | Receive Window Size                | `client｜server`       |\r\n| inactive.timeout   | int    | 72                           | Connection Idle Timeout (seconds)  | `client｜server`       |\r\n| dns.timeout        | int    | 4                            | DNS Query Timeout (seconds)        | `client｜server`       |\r\n| dns.ttl            | int    | 60                           | DNS Cache TTL (seconds)            | `client｜server`       |\r\n| dns.cache          | bool   | true                         | Enable DNS Cache                   | `client｜server`       |\r\n| dns.turbo          | bool   | false                        | Enable Turbo Mode                  | `client｜server`       |\r\n| dns.redirect       | string | \"0.0.0.0\"                    | DNS Redirection Address            | `server`               |\r\n| listen.port        | int    | 20000                        | Listening Port                     | `server`               |\r\n| static.keep-alived | array  | [1,5]                        | Keep-Alive Interval [Min, Max] (seconds) | `client`       |\r\n| static.dns         | bool   | true                         | Enable Static DNS Service          | `client`               |\r\n| static.quic        | bool   | true                         | Enable QUIC Support                  | `client`               |\r\n| static.icmp        | bool   | true                         | Enable ICMP Support                  | `client`               |\r\n| static.[aggligator](#udp-static-aggligator)  | int    | 4                            | Bandwidth Aggregator Link Count    | `client`               |\r\n| static.servers     | array  | [\"1.0.0.1:20000\", ...]       | Static Server Address List         | `client`               |\r\n\r\n### 🔄 Multiplexing (mux)\r\n| Parameter Name      | Type   | Example Value | Description                        | Applicable             |\r\n|---------------------|--------|--------------|------------------------------------|------------------------|\r\n| connect.timeout     | int    | 20           | Connection Establishment Timeout (seconds) | `client｜server`   |\r\n| inactive.timeout    | int    | 60           | Idle Timeout (seconds)             | `client｜server`       |\r\n| congestions         | int    | 134217728    | Max Congestion Control Window (bytes) | `client｜server`   |\r\n| keep-alived         | array  | [1,20]       | Keep-Alive Interval [Min, Max] (seconds) | `client｜server`   |\r\n\r\n### 🌐 WebSocket Settings\r\n| Parameter Name                         | Type   | Example Value                          | Description                        | Applicable             |\r\n|----------------------------------------|--------|----------------------------------------|------------------------------------|------------------------|\r\n| host                                   | string | starrylink.net                         | Server Domain Name                 | `server`               |\r\n| path                                   | string | /tun                                   | WebSocket Path                     | `server`               |\r\n| listen.ws                              | int    | 20080                                  | HTTP Listening Port                | `server`               |\r\n| listen.wss                             | int    | 20443                                  | HTTPS Listening Port               | `server`               |\r\n| ssl.certificate-file                   | string | starrylink.net.pem                     | SSL Certificate File               | `server`               |\r\n| ssl.certificate-chain-file             | string | starrylink.net.pem                     | SSL Certificate Chain File         | `server`               |\r\n| ssl.certificate-key-file               | string | starrylink.net.key                     | SSL Private Key File                | `server`               |\r\n| ssl.certificate-key-password           | string | test                                   | SSL Private Key Password           | `server`               |\r\n| ssl.ciphersuites                       | string | TLS_AES_256_GCM_SHA384:...             | Cipher Suites List                 | `client｜server`       |\r\n| verify-peer                            | bool   | true                                   | Root Certificate Verification      | `client`               |\r\n| http.error                             | string | Status Code: 404; Not Found            | Custom HTTP Error Response Content | `server`               |\r\n| http.request                           | object | {Cache-Control: \"no-cache\", ...}      | Custom HTTP Request Headers        | `client`               |\r\n| http.response                          | object | {Server: \"Kestrel\"}                   | Custom HTTP Response Headers       | `server`               |\r\n\r\n### 🖥️ Server Configuration (server)\r\n| Parameter Name | Type   | Example Value                            | Description                          | Applicable             |\r\n|------------------|--------|-------------------------------------------|--------------------------------------|------------------------|\r\n| log              | string | ./ppp.log                                | Log File Path                        | `server`               |\r\n| node             | int    | 1                                         | Server Node ID                       | `server`               |\r\n| subnet           | bool   | true                                      | Enable Subnet Allocation             | `server`               |\r\n| mapping          | bool   | true                                      | Enable Port Mapping                  | `server`               |\r\n| backend          | string | ws://192.168.0.24/ppp/webhook             | Management Backend URL               | `server`               |\r\n| backend-key      | string | HaEkTB55VcHovKtUPHmU9zn0NjFmC6tff        | Management Backend Authentication Key | `server`            |\r\n\r\n### 💻 Client Configuration (client)\r\n| Parameter Name               | Type   | Example Value                            | Description                         | Applicable             |\r\n|------------------------------|--------|-------------------------------------------|-------------------------------------|------------------------|\r\n| guid                         | string | {F4569208-BB45-4DEB-B115-0FEA1D91B85B}   | Unique Client Identifier            | `client`               |\r\n| server                       | string | ppp://192.168.0.24:20000/                | Server Connection Address           | `client`               |\r\n| server-proxy                 | string | [http\\|socks]://user:pass@192.168.0.18:8080/     | Proxy Address for Connecting to Server | `client`            |\r\n| bandwidth                    | int    | 10000                                    | Bandwidth Limit (Kbp/s)             | `client`               |\r\n| reconnections.timeout        | int    | 5                                        | Reconnection Wait Time (seconds)    | `client`               |\r\n| paper-airplane.tcp           | bool   | true                                     | Enable Paper Airplane TCP Acceleration | `client`            |\r\n| http-proxy.bind              | string | 192.168.0.24                              | HTTP Proxy Binding Address          | `client`               |\r\n| http-proxy.port              | int    | 8080                                     | HTTP Proxy Port                     | `client`               |\r\n| socks-proxy.bind             | string | 192.168.0.24                              | SOCKS Proxy Binding Address         | `client`               |\r\n| socks-proxy.port             | int    | 1080                                     | SOCKS Proxy Port                     | `client`               |\r\n| socks-proxy.username         | string | test                                    | SOCKS Authentication Username       | `client`               |\r\n| socks-proxy.password         | string | 123456                                  | SOCKS Authentication Password       | `client`               |\r\n\r\n#### 📍 Port Mappings\r\n| Parameter Name | Type   | Example Value      | Description                        | Applicable  |\r\n|------------------|--------|---------------------|------------------------------------|--------------|\r\n| local-ip         | string | 192.168.0.24        | Local IP Address                   | `client`     |\r\n| local-port       | int    | 80                  | Local Port                         | `client`     |\r\n| protocol         | string | tcp                 | Protocol Type (tcp/udp)              | `client`     |\r\n| remote-ip        | string | ::                  | Remote IP (:: indicates any)        | `client`     |\r\n| remote-port      | int    | 10001               | Remote Port                        | `client`     |\r\n\r\n#### 🛣️ Routing Rules\r\n| Parameter Name | Type   | Example Value                     | Description                         | Applicable  |\r\n|------------------|--------|-----------------------------------|-------------------------------------|--------------|\r\n| name             | string | CMNET                            | Routing Rule Name                   | `client`     |\r\n| nic              | string | eth1                             | Network Interface Name              | `client`     |\r\n| ngw              | string | 192.168.1.1                      | Gateway Address                     | `client`     |\r\n| path             | string | ./cmcc_cidr.txt                  | Local CIDR File Path                | `client`     |\r\n| vbgp             | string | `https://ispip.clang.cn/cmcc_cidr.txt` | Online CIDR Data Source URL  | `client`     |\r\n\r\n---\r\n\r\n## 💡 Configuration Guide ##\r\n\u003ca id=\"mux-connection-number-guide\"\u003e\u003c/a\u003e\r\n\r\n### \u003cimg src=\"https://img.icons8.com/color/24/000000/merge.png\" width=\"20\" height=\"20\"\u003e MUX Connection Count\r\n| Connections | Focus Area |\r\n|------|--------------|\r\n| 4 | Low latency |\r\n| 8 | Medium latency |\r\n| 12 | High latency |\r\n| 16 | Extreme high latency |\r\n\r\n\u003ca id=\"concurrent-number-guide\"\u003e\u003c/a\u003e\r\n\r\n### \u003cimg src=\"https://cdn2.iconfinder.com/data/icons/elastic-search-filled-outline-1/128/Elastic_Search_36_-_Filled_Outline_-_36-20-512.png\" width=\"20\" height=\"20\"\u003e VPN Thread Count\r\n| Thread Count | Focus Area |\r\n|--------------|--------------|\r\n| 1 | Single-core optimization |\r\n| CPU cores + 1 | Multi-core optimization |\r\n\r\n\u003ca id=\"ssmt-threading-number-guide\"\u003e\u003c/a\u003e\r\n\r\n### \u003cimg src=\"https://img.icons8.com/color/24/000000/processor.png\" width=\"20\" height=\"20\"\u003e SSMT Thread Count\r\n| Thread Count | Focus Area |\r\n|--------------|--------------|\r\n| 1 | Single-core optimization |\r\n| CPU cores | Multi-core optimization |\r\n\r\n---\r\n\r\n\u003ca id=\"dns-rules-guide\"\u003e\u003c/a\u003e\r\n\r\n### \u003cimg src=\"https://img.icons8.com/color/24/000000/domain.png\" width=\"20\" height=\"20\"/\u003e DNS Rules List  \r\n▶️ **Mainland China Domain Direct Connection Rules** (Regularly Updated):  \r\n[github.com/liulilittle/dns-rules.txt](https://github.com/liulilittle/dns-rules.txt)  \r\n`Function: Bypass VPN for DNS queries, accelerating local domain resolution`\r\n\r\n---\r\n\r\n### \u003cimg src=\"https://cdn-icons-png.freepik.com/256/12054/12054582.png?semt=ais_hybrid\" width=\"20\" height=\"20\"/\u003e HTTPS Certificate Configuration  \r\n**Place the root certificate in the VPN runtime directory:** `cacert.pem`  \r\n\r\n| Source          | Download Link |\r\n|-----------------|---------------|\r\n| Mirror Repository | [github.com/liulilittle/cacert.pem](https://github.com/liulilittle/cacert.pem) |\r\n| CURL Official   | [curl.se/docs/caextract.html](https://curl.se/docs/caextract.html) |\r\n\r\n\u003e 🔒 Certificate purpose: Ensure secure validation for HTTPS access\r\n\r\n---\r\n\r\n## 🚀 Quick Start\r\n### Server Deployment\r\n\r\n#### 1. Ubuntu 18.04 LTS x86_64 Rapid Launch\r\n```bash\r\nsudo su\r\nscreen -S openppp2\r\nmkdir -p openppp2 \u0026\u0026 cd openppp2\r\nwget https://github.com/liulilittle/openppp2/releases/latest/download/openppp2-linux-amd64-simd.zip\r\nunzip openppp2-linux-amd64-simd.zip  \r\nchmod a+x ppp\r\nrm -rf *.txt *.key *.pem *.zip\r\n```\r\n\r\n##### 1.1. Configure Backend\r\nEdit `appsettings.json`, clear or remove the `server.backend` field:\r\n```json\r\n\"server\": {\r\n    \"backend\": \"\",  // Ensure this is empty\r\n    // Other configurations remain unchanged...\r\n    \"backend-key\": \"HaEkTB55VcHovKtUPHmU9zn0NjFmC6tff\"\r\n}\r\n```\r\n\r\n##### 1.2. Start Service\r\n```bash\r\n./ppp\r\n```\r\n\r\n### 💻 Client Deployment\r\n#### 1. Windows Rapid Setup\r\n\r\n**1.1 Create Directory**  \r\nRun PowerShell as Administrator\r\n\r\n**1.2 Create Directory**  \r\n```powershell\r\nmkdir C:\\openppp2\r\n```\r\n\r\n**1.3 Download and Cleanup**  \r\n1. Download package to `C:\\openppp2`:  \r\n   [openppp2-windows-amd64.zip](https://github.com/liulilittle/openppp2/releases/download/1.0.0.25226/openppp2-windows-amd64.zip)  \r\n2. Unzip and delete redundant files:  \r\n   ```powershell\r\n   cd C:\\openppp2\r\n   rm cmcc_cidr.txt, crtc_cidr.txt, firewall-rules.txt, ip.txt, starrylink.net.key, starrylink.net.pem, openppp2-windows-amd64.zip\r\n   ```\r\n\r\n**1.4 Client Configuration**  \r\nEdit the `appsettings.json` file:\r\n```json\r\n\"client\": {\r\n    \"guid\": \"{Generate a new GUID}\",        // Unique for each client, do not duplicate\r\n    \"server\": \"ppp://192.168.0.24:20000/\",  // Connection server address and protocol\r\n    \"server-proxy\": \"\",                     // Leave empty (no proxy)\r\n    \"bandwidth\": 0                          // 0 for unlimited\r\n},\r\n\"static\": {\r\n    \"keep-alived\": [              // Keep-alive settings (default)\r\n        1,\r\n        5\r\n    ],\r\n    \"dns\": true,                  // Enable DNS\r\n    \"quic\": true,                 // Enable QUIC\r\n    \"icmp\": true,                 // Enable ICMP\r\n    \"aggligator\": 0,              // Bandwidth aggregator links (0=disabled)\r\n    \"servers\": [                  // Clear forwarding server list\r\n\r\n    ]\r\n}\r\n```\r\n\r\n**1.5 Launch Client**  \r\n   ```powershell\r\n    # Run as Administrator:\r\n    .\\ppp --mode=client\r\n   ```\r\n\r\n### 🔗 Protocol List\r\n| Protocol Prefix | Transport Mode | Use Case |\r\n|------------------|----------------|----------|\r\n| `ppp://` | Native TCP direct connection | Low latency, high throughput direct connection |\r\n| `ws://` | Plain WebSocket transmission | CDN Forwarding |\r\n| `wss://` | SSL-encrypted WebSocket | CDN Forwarding |\r\n\r\n### Usage Example\r\n```json\r\n\"server\": \"ppp://vpn.example.com:20000\"   // TCP direct\r\n\"server\": \"ws://vpn.example.com:80\"       // WebSocket\r\n\"server\": \"wss://vpn.example.com:443\"     // Encrypted WebSocket\r\n```\r\n\r\n### ⚠️ Notes\r\n\r\n#### 1. First Run\r\n- Must complete all configuration modifications before starting the client  \r\n- After configuration changes, restart the client for changes to take effect  \r\n\r\n#### 2. GUID Generation\r\n| Method | Command/Method |\r\n|---------|----------------|\r\n| PowerShell | `[guid]::NewGuid()` |\r\n| Online Generator | [guidgen.com](https://www.guidgen.com) |\r\n| CMD | `powershell -Command \"[guid]::NewGuid()\"` |\r\n\r\n#### 3. Bandwidth Settings\r\n- Unit: **Kbp/s**  \r\n- `0` = No limit  \r\n- Example: `1024` = 128 KB/s (~1.0 Mbps)  \r\n\r\n#### 4. Network Requirements\r\n| Protocol | Port Needed | Firewall Requirements |\r\n|----------|--------------|-------------------------|\r\n| `ppp://` | TCP 20000 | Allow inbound/outbound connections |\r\n| `ws://` | HTTP 80 | Allow HTTP traffic |\r\n| `wss://` | HTTPS 443 | Allow SSL traffic |\r\n\r\n### 🔧 Troubleshooting\r\n1. **Connection failure**  \r\n   - Check if the server IP/port are correct  \r\n   - Verify if firewall allows corresponding protocol ports  \r\n\r\n2. **GUID conflicts**  \r\n   - Each device must use a different GUID  \r\n   - When copying clients, regenerate GUIDs  \r\n\r\n3. **Performance issues**  \r\n   - Prefer `ppp://` protocol (best performance)  \r\n   - CDN acceleration `ws://` (not recommended)  \r\n\r\n## Appendix 1\r\n\r\n\u003ca id=\"udp-static-aggligator\"\u003e\u003c/a\u003e\r\n\r\n### UDP Bandwidth Aggregator Settings\r\n\r\nThe value of `udp.static.aggligator` determines the operating mode:\r\n- **\u003e 0**: Enable aggregator, must configure `servers` (list of aggregator servers)\r\n- **≤ 0**: Enable static tunnel, `servers` is an `optional` list of forwarding servers\r\n\r\n```json\r\n\"udp\": {\r\n    \"static\": {\r\n        // ...other configurations\r\n        \"aggligator\": 2,           // Mode selection (\u003e0 to enable aggregator)\r\n        \"servers\": [               // List of server addresses\r\n            \"192.168.1.100:6000\", \r\n            \"10.0.0.2:6000\"\r\n        ]\r\n    }\r\n}\r\n```\r\n\r\n### Requirements for Aggligator Server\r\n1. **Separate deployment**:  \r\n   - Install [Aggligator](https://github.com/liulilittle/aggligator) server separately\r\n\r\n2. **Node configuration**:\r\n    ```bash\r\n    ./aggligator --mode=server --flash=yes --congestions=1024 --bind=10000,10001 --host=192.168.0.24:7000\r\n    ```\r\n\r\n#### Parameter Description Table\r\n| Parameter | Value | Explanation | Details |\r\n|------------|--------|--------------|---------|\r\n| `--mode` | `server` | Operation mode | Run as server, receive and forward data |\r\n| `--flash` | `yes` | QoS control | Enable advanced QoS policies |\r\n| `--congestions` | `1024` | Window size | Max congestion window, 1024 UDP packets\u003cbr\u003e- Memory usage ≈ 1024 × MTU(1500 bytes) ≈ 1.5MB |\r\n| `--bind` | `10000,10001` | Listening ports | Local listening ports (comma-separated)\u003cbr\u003e- Receive data on these ports\u003cbr\u003e- Support load balancing over multiple ports |\r\n| `--host` | `192.168.0.24:7000` | Forward target | Final forwarding target\u003cbr\u003e- Must be UDP service\u003cbr\u003e- Format: `IP:port` or `domain:port` |\r\n\r\n---\r\n\r\n## Appendix 2\r\n\r\n\u003ca id=\"linux-route-forwarding\"\u003e\u003c/a\u003e\r\n\r\n### 1. Enable Linux Routing Forwarding\r\n\r\n1. Edit `/etc/sysctl.conf` and add:\r\n    ```conf\r\n    net.ipv4.ip_forward = 1\r\n    net.ipv4.conf.all.forwarding = 1\r\n    net.ipv4.conf.default.forwarding = 1\r\n    net.ipv6.conf.all.forwarding = 1\r\n    net.ipv6.conf.default.forwarding = 1\r\n    net.ipv6.conf.lo.forwarding = 1\r\n    ```\r\n\r\n2. Run `sysctl -p` to apply\r\n\r\n### 2. Set IPv4 Priority in Linux\r\n\r\n1. Edit `/etc/gai.conf`\r\n2. Add:\r\n    ```conf\r\n    precedence ::ffff:0:0/96 100\r\n    ```\r\n    \u003e **Explanation**:  \r\n    \u003e This makes the system prioritize IPv4 addresses for network connections\r\n\r\n### 3. Linux Dual-Network Card Routing Forwarding\r\n\r\n#### Prerequisite\r\nEnsure Linux routing forwarding is enabled as above.\r\n\r\n#### Example Scenario\r\nImplement communication between `192.168.1.0/24` and `192.168.0.0/24` subnets:\r\n\r\n\u003cimg src=\"https://i-blog.csdnimg.cn/direct/00a37d08d3804713994018f19e62fd74.png\" width=\"500\" height=\"400\"\u003e\u003c/img\u003e\r\n\r\n#### Routing Commands\r\n```bash\r\n# Configure bidirectional routing forwarding\r\niptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE\r\niptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE\r\n```\r\n\r\n#### Key Points\r\n##### ✅ Correct Configuration\r\n- Configure separate rules for each subnet:\r\n```bash\r\niptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE\r\niptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE\r\n```\r\n\r\n##### ❌ Incorrect Configuration\r\n```bash\r\n# Merging subnets (/23) causes routing confusion\r\niptables -t nat -A POSTROUTING -s 192.168.0.0/23 -j MASQUERADE\r\n```\r\n\r\n**Reason**:  \r\n- Merging subnets (e.g., `/23`) prevents the kernel from correctly recognizing physical NIC egress  \r\n- Causes source address translation errors, connection failures  \r\n- Can disrupt entire network\r\n\r\n#### Client Gateway Configuration\r\nEach subnet device must set its gateway accordingly:\r\n| Subnet | Gateway Address |\r\n|---------|-----------------|\r\n| 192.168.0.0/24 | 192.168.0.8 |\r\n| 192.168.1.0/24 | 192.168.1.8 |\r\n\r\n#### Verification\r\nAfter configuration:\r\n- Devices in `192.168.0.0/24` can access `192.168.1.0/24` and vice versa\r\n- Latency is low, data transfer stable\r\n\r\n## 🌐 4. Linux LAN Bypass Routing S-NAT Configuration\r\n\r\n### Network Topology\r\n```mermaid\r\ngraph LR\r\n    A[Main Router] --\u003e|ASN| C[Internet]\r\n    B[Bypass Router] --\u003e|Forward Traffic| A\r\n    D[Client] --\u003e|Gateway Pointing To| B\r\n```\r\n\r\n### Device Configuration\r\n| Device Type | IP Address | Subnet Mask | Gateway |\r\n|--------------|--------------|--------------|---------|\r\n| **Main Router** | 192.168.0.1 | 255.255.255.0 | - |\r\n| **Bypass Router** | 192.168.0.20 | 255.255.255.0 | 192.168.0.1 |\r\n\r\n### ⚙️ Configuration Steps\r\n\r\n1. **🌐 Enable IPv4 Forwarding**  \r\n   Temporary:\r\n   ```bash\r\n   echo 1 \u003e /proc/sys/net/ipv4/ip_forward\r\n   ```\r\n   Permanent:\r\n   ```bash\r\n   sudo sysctl -w net.ipv4.ip_forward=1\r\n   ```\r\n   Verify:\r\n   ```bash\r\n   sudo sysctl -p\r\n   ```\r\n\r\n2. **🔧 Configure iptables Rules**  \r\n   ```bash\r\n   # Allow outbound traffic from subnet\r\n   sudo iptables -A FORWARD -s 192.168.0.0/24 -d 0.0.0.0/0 -j ACCEPT\r\n   \r\n   # Allow established return packets\r\n   sudo iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.0.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT\r\n   \r\n   # Allow ICMP redirect (optional)\r\n   sudo iptables -A INPUT -p icmp --icmp-type 30 -j ACCEPT\r\n   sudo iptables -A OUTPUT -p icmp --icmp-type 30 -j ACCEPT\r\n   \r\n   # Configure SNAT source address translation\r\n   sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 192.168.0.20\r\n   ```\r\n\r\n3. **🔍 Client Testing**  \r\n   Change client gateway to `192.168.0.20`:\r\n   ```bash\r\n   ping 8.8.8.8\r\n   traceroute google.com\r\n   ```\r\n\r\n### ⚠️ Common Issues (FAQ)\r\n\u003e ❗ **Configured but cannot access the internet?**  \r\n\u003e ```bash\r\n\u003e # Check if Docker service interferes\r\n\u003e sudo systemctl status docker\r\n\u003e\r\n\u003e # If present, temporarily stop for testing\r\n\u003e sudo systemctl stop docker\r\n\u003e\r\n\u003e # After confirming, consider uninstalling or reconfiguring Docker network\r\n\u003e sudo apt purge docker.io\r\n\u003e ```\r\n\r\n### Key Points Explanation\r\n| Configuration Item | Function Explanation | Recommended Status |\r\n|----------------------|----------------------|--------------------|\r\n| IP forwarding (net.ipv4.ip_forward) | Enable kernel packet forwarding | `=1` |\r\n| FORWARD rules | Control traffic passing through the bypass router | ACCEPT |\r\n| SNAT translation | Replace client source IP with bypass router IP | Necessary |\r\n| Docker Service | May override iptables rules | Disable |\r\n\r\n\u003e 💡 **Pro Tip**: Make permanent by editing `/etc/sysctl.conf` and saving iptables with `iptables-persistent`.\r\n\r\n### 5. Windows Dual Network Card Environment Configuration IPv4 Priority\r\n\r\n1. Open Registry Editor (`regedit`)\r\n2. Navigate to:\r\n    ```text\r\n    HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters\r\n    ```\r\n\r\n3. Find or create `DisabledComponents` DWORD (32-bit)\r\n4. Set value data to `0x20` (hexadecimal)\r\n\r\n    \u003cimg src=\"https://i-blog.csdnimg.cn/blog_migrate/704f0286d689047670b59d2dc74ab2ee.png\" width=\"350\" height=\"200\"\u003e\u003c/img\u003e\r\n\r\n    \u003e **Value Explanation**:\r\n    \u003e | Hex Value | Functionality |\r\n    \u003e |------------|--------------|\r\n    \u003e | 0x00 | Enable IPv6 |\r\n    \u003e | 0x01 | Disable IPv4 |\r\n    \u003e | **0x20** | **Prioritize IPv4 (recommended)** |\r\n    \u003e | 0xFFFFFFFF | Fully disable IPv6 |\r\n\r\n5. Click OK and restart\r\n6. Verify:\r\n   - Visit [test-ipv6.com](https://test-ipv6.com)\r\n   - Check IPv6 connectivity status\r\n\r\n## 🖥️ Appendix 3: Windows Soft Router Forwarding\r\n### 📡 Network Topology\r\n```mermaid\r\ngraph LR\r\n    A[Main Router] --\u003e|ASN| C[Internet]\r\n    B[VGW] --\u003e|Forward Traffic| A\r\n    D[Client] --\u003e|Gateway pointing to| B\r\n```\r\n\r\n### 🌐 Required Tool\r\n[![VGW](https://img.shields.io/badge/PPP_PRIVATE_NETWORK™-VGW_Router-blue?logo=windows)](https://github.com/liulilittle/vgw-release)  \r\nDedicated Software Router Solution - [VGW GitHub Release](https://github.com/liulilittle/vgw-release)\r\n\r\n---\r\n\r\n### 📥 Installation Steps\r\n\r\n1. **Run PowerShell as Administrator**\r\n   ```powershell\r\n   cd C:/\r\n   git clone https://github.com/liulilittle/VGW-release.git vgw\r\n   ```\r\n\r\n2. **Install Network Driver Dependencies (Choose one)**  \r\n    ```powershell\r\n    cd C:/vgw/windows/\r\n    ```\r\n\r\n    | Option | Executable | Recommendation | Notes |\r\n    |--------|--------------|----------------|--------|\r\n    | 1️⃣ Script Install | `.\\Install_WinPcap.bat` | ⭐⭐ | Automatic dependency installation |\r\n    | 2️⃣ **WinPcap** | `.\\WinPcap_4_1_3.exe` | ⭐⭐⭐ | Traditional driver |\r\n    | 3️⃣ **NPCAP** | `.\\npcap-1.60.exe` | ⭐⭐⭐⭐ | **Recommended**, supports latest Windows features |\r\n\r\n    \u003e 💡 It is recommended to install **NPCAP** for better performance and compatibility\r\n\r\n---\r\n\r\n### ⚙️ Configure and Run VGW\r\n```powershell\r\n# Execute run.bat or with custom parameters:\r\n.\\vgw.exe --ip=192.168.0.40 --ngw=192.168.0.1 --mask=255.255.255.0\r\n```\r\n\r\n#### Parameter Explanation:\r\n| Parameter | Function | Example | Required | Notes |\r\n|------------|----------|---------|---------|--------|\r\n| `--ip` | Set virtual gateway IP | 192.168.0.40 | ✅ | Must be in LAN subnet and unused |\r\n| `--ngw` | Main router gateway | 192.168.0.1 | ✅ | Points to main router IP |\r\n| `--mask` | Subnet mask | 255.255.255.0 | ✅ | Same as main router |\r\n| `--mac` | Custom virtual MAC | 30:fc:68:88:b4:a9 | ❌ | Defaults to internal MAC |\r\n\r\n---\r\n\r\n### ⚠️ Key Notes\r\n\u003e 🔌 **Network Type Restriction**  \r\n\u003e Supports only **wired networks**, WiFi cannot use this mode  \r\n\u003e\r\n\u003e 🖧 **IP Configuration Principle**  \r\n\u003e `--ip` must be in LAN segment and unused  \r\n\u003e\r\n\u003e 🔄 **Admin Rights**  \r\n\u003e All operations require **Administrator** privileges in PowerShell\r\n\r\n---\r\n\r\n## ℹ️ About Us\r\n\r\n### 📬 Contact Us  \r\n[![Telegram](https://img.shields.io/badge/Telegram-Contact_PPP_PRIVATE_NETWORK-blue?logo=telegram)](https://t.me/supersocksr_group)  \r\nQuick response to your inquiries and service requests\r\n\r\n---\r\n\r\n### ©️ Copyright Statement\r\n\r\n**Dual Entity Ownership**:\r\n\r\n| Country | Entity Type | Company Name | Validity |\r\n|---------|--------------|----------------|----------|\r\n| **🇺🇸 USA** | LLC | `SupersocksR LLC` | 2017 ~ 2055 |\r\n| **🇸🇨 Seychelles** | Organization (ORG) | `SupersocksR ORG` | 2017 ~ 2055 |\r\n\r\n\u003e All rights reserved | 保留所有权利\r\n\r\n## 📦 About the Repository\r\n\r\n### 📊 Basic Statistics\r\n\r\n| Metric      | Badge                                                                                                    |\r\n|-------------|----------------------------------------------------------------------------------------------------------|\r\n| **Stars**   | [![Stars](https://img.shields.io/github/stars/liulilittle/openppp2?logo=github\u0026style=flat-square)](https://github.com/liulilittle/openppp2)  |\r\n| **Forks**   | [![Forks](https://img.shields.io/github/forks/liulilittle/openppp2?logo=github\u0026style=flat-square)](https://github.com/liulilittle/openppp2)  |\r\n| **Commits** | [![Commits](https://img.shields.io/github/commit-activity/t/liulilittle/openppp2?style=flat-square)](https://github.com/liulilittle/openppp2)|\r\n\r\n#### 🔍 Repository Overview\r\n[![Repo Stats](https://github-readme-stats.vercel.app/api/pin?username=liulilittle\u0026repo=openppp2\u0026show_owner=true\u0026show_icons=true\u0026theme=vue)](https://github.com/liulilittle/openppp2)\r\n\r\n### 📈 Growth Chart\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n\r\n#### ⭐ Star \u0026 Fork History\r\n[![Star Fork History](https://starchart.cc/liulilittle/openppp2.svg)](https://starchart.cc/liulilittle/openppp2)\r\n\r\n#### 📝 Contribution Activity Heatmap\r\n[![Contribution Graph](https://github-readme-activity-graph.vercel.app/graph?username=liulilittle\u0026repo=openppp2\u0026theme=github\u0026area=true\u0026hide_border=true)](https://github.com/liulilittle/openppp2)\r\n\r\n\u003c/div\u003e\r\n\r\n\u003cdiv align=\"center\" style=\"margin-top: 30px;\"\u003e \u003cimg src=\"https://img.icons8.com/color/96/000000/security-checked.png\" width=\"60\"\u003e \u003cp\u003e\u003cem\u003eEnterprise-level Secure Network Solution\u003c/em\u003e\u003c/p\u003e \u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliulilittle%2Fopenppp2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliulilittle%2Fopenppp2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliulilittle%2Fopenppp2/lists"}