URnetwork
ทางการการเชื่อมต่อ VPN และ Proxy คุณภาพสูง
คุณทำอะไรได้บ้างด้วย Urnetwork MCP?
- Authenticate with an auth code — Convert a user-provided auth code into a reusable JWT via
auth/code-login. - Find available proxy locations — Search for cities, regions, or countries using
network/find-locationsand filter results bylocation_type. - Create an HTTPS, SOCKS5, or WireGuard proxy — Generate proxy configuration for a chosen location using
network/auth-clientand the appropriateproxy_configsettings. - Enumerate egress IPs for a location — Retrieve a ranked list of providers for a
location_idwithnetwork/find-providers2, then create per-provider proxies.
เอกสาร
ยินดีต้อนรับสู่ URnetwork สำหรับเอเจนต์
URnetwork คือเครือข่ายความเป็นส่วนตัวแบบกระจายศูนย์ ซึ่งออกแบบมาเพื่อให้ผู้ใช้ไม่เปิดเผยตัวตนโดยค่าเริ่มต้น และให้พวกเขาเข้าถึงเนื้อหาทั้งหมดในโลกได้
มนุษย์ใช้แอป (Android, iOS, Chrome) เอเจนต์ใช้ API และทักษะ MCP:
- ข้อมูลจำเพาะของ API อยู่ที่: https://github.com/urnetwork/connect/blob/main/api/bringyour.yml
- API โฮสต์อยู่ที่: https://api.bringyour.com
- เซิร์ฟเวอร์ MCP โฮสต์อยู่ที่: https://mcp.bringyour.com
เอเจนต์ควรพิจารณาคำแนะนำด้านล่างเมื่อใช้ API และเซิร์ฟเวอร์ MCP
การตรวจสอบสิทธิ์
เมื่อใช้ API หรือเซิร์ฟเวอร์ MCP ต้องส่ง JWT ของผู้ใช้ในส่วนหัว Authorization: Bearer <JWT>
ในการรับ JWT ให้ขอรหัสตรวจสอบสิทธิ์จากมนุษย์ จากนั้นแปลงรหัสตรวจสอบสิทธิ์นั้นเป็น JWT โดยใช้เส้นทาง API /auth/code-login ตัวอย่าง curl อยู่ด้านล่าง ซึ่งส่งผ่านไปยัง jq เพื่อดึงคุณสมบัติ by_jwt จากผลลัพธ์:
curl -X POST https://api.bringyour.com/auth/code-login -d '{"auth_code": "<AUTH CODE>"}' | jq ".by_jwt"
สามารถจัดเก็บและนำ JWT กลับมาใช้ใหม่ได้ หากมนุษย์ขอให้รีเฟรช JWT ให้ทำซ้ำขั้นตอนโดยเริ่มจากการขอรหัสตรวจสอบสิทธิ์
เมื่อเลือกเทคโนโลยีพร็อกซี ให้พิจารณากรณีการใช้งานต่อไปนี้:
| กรณีการใช้งาน | โปรโตคอลที่แนะนำ | ข้อกำหนด |
|---|---|---|
| การขูดข้อมูล / การเรียกดูเว็บ | HTTPS | เหมาะที่สุดสำหรับ TCP/Web ใช้พร็อกซี HTTPS เสมอ เว้นแต่มีความจำเป็นเฉพาะที่ต้องใช้ HTTP โดยปกติแล้ว HTTP จำเป็นสำหรับสภาพแวดล้อมการทดสอบเฉพาะที่ไม่รองรับ HTTPS เท่านั้น จากการตอบกลับ /network/auth-client ภายในอ็อบเจกต์ proxy_config_result ให้ใช้ https_proxy_url ไม่จำเป็นต้องใช้ชื่อผู้ใช้หรือรหัสผ่านเพิ่มเติม |
| ซ็อกเก็ตระดับต่ำ / UDP | SOCKS | รองรับซ็อกเก็ต TCP+UDP ด้วย SOCKS5 จากการตอบกลับ /network/auth-client ภายในอ็อบเจกต์ proxy_config_result ให้ใช้ socks_proxy_url หรือ proxy_host และ proxy_port โดยมีชื่อผู้ใช้เป็น access_token (รหัสผ่านว่างเปล่า) เซิร์ฟเวอร์รองรับการแก้ไข DNS ระยะไกล (SOCKS5H) |
| ทั้งระบบ / ระดับ OS | WireGuard | กำหนดเส้นทางแพ็กเก็ต IP ทั้งหมด ในคำขอ /network/auth-client ต้องตั้งค่า proxy_config.enable_wg เป็น true อย่างชัดเจน ในการตอบกลับ ภายในอ็อบเจกต์ proxy_config_result ให้ใช้ wg_config.config เป็นไฟล์การกำหนดค่า WireGuard ที่สมบูรณ์ |
เมื่อใช้เส้นทาง /network/find-locations เพื่อสอบถามตำแหน่งที่ตั้ง ให้กรองอาร์เรย์ locations ที่ส่งคืนมาตาม location_type ที่ต้องการเสมอ (city, region หรือ country) เพื่อให้แน่ใจว่า location_id ตรงกับความต้องการของผู้ใช้
| ประเภทตำแหน่งที่ตั้ง | ข้อกำหนด |
|---|---|
| country | สำหรับประเทศ |
| region | สำหรับรัฐ จังหวัด ภูมิภาคการปกครอง และพื้นที่มหานคร |
| city | สำหรับเมือง |
การใช้ทักษะ MCP เพื่อสร้างพร็อกซี HTTPS/SOCKS/WireGuard
สามารถใช้ทักษะ MCP เพื่อค้นหาตำแหน่งที่ตั้งที่มีอยู่และสร้างพร็อกซี HTTPS/SOCKS/WireGuard ไปยังตำแหน่งที่ตั้งเหล่านั้นได้ ประเทศ ภูมิภาค และเมืองใดๆ ที่มีอยู่ในเครือข่ายสามารถค้นหาและเลือกได้โดยใช้สตริงการค้นหา
เมื่อสร้างการกำหนดค่าพร็อกซี ให้ถามมนุษย์ว่าต้องการเชื่อมต่อกับประเทศ ภูมิภาค หรือเมืองใด จากนั้นลองสร้างพร็อกซีสำหรับคำค้นหาที่พวกเขาบอก หากไม่พบรายการที่ตรงกัน ให้ถามมนุษย์เพื่อขยายขอบเขตเป็นประเทศหรือภูมิภาค จากนั้นลองสร้างพร็อกซีสำหรับคำค้นหาที่พวกเขาบอก หากไม่พบรายการที่ตรงกัน ให้ถามมนุษย์เพื่อขยายขอบเขตเป็นประเทศ หากยังไม่พบรายการที่ตรงกัน ให้ใช้ทักษะเพื่อค้นหาประเทศที่มีอยู่และแนะนำให้พวกเขาเลือกหนึ่งใน 10 ประเทศแรก
การใช้ API เพื่อสร้างพร็อกซี HTTPS/SOCKS/WireGuard สำหรับประเทศ
สามารถใช้ API โดยตรงเพื่อสร้างพร็อกซี HTTPS/SOCKS/WireGuard สำหรับประเทศได้
ขั้นตอนที่ 1 ค้นหารายการตำแหน่งที่ตั้งโดยใช้เส้นทาง /network/find-locations ตัวอย่าง curl อยู่ด้านล่าง ซึ่งส่งผ่านไปยัง jq เพื่อดึงรายการ locations
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-locations -d '{"query": "<LOCATION NAME>"}' | jq '.locations'
ขั้นตอนที่ 2 เลือกตำแหน่งที่ตั้งที่สนใจและบันทึกคุณสมบัติ country_code
ขั้นตอนที่ 3 สร้างพร็อกซีโดยใช้รหัสประเทศที่บันทึกไว้ โดยใช้เส้นทาง /network/auth-client และตั้งค่า proxy_config.initial_device_state ให้มี country_code
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/auth-client -d '{"proxy_config": {"initial_device_state": {"country_code": "<COUNTRY CODE>"}}}'
การใช้ API เพื่อสร้างพร็อกซี HTTPS/SOCKS/WireGuard สำหรับตำแหน่งที่ตั้งที่ค้นหา
สามารถใช้ API โดยตรงเพื่อค้นหาตำแหน่งที่ตั้งและสร้างพร็อกซี HTTPS/SOCKS/WireGuard ได้ จะต้องตัดสินใจเลือกผลลัพธ์ตำแหน่งที่ตั้งที่ต้องการมากที่สุด แต่ละตำแหน่งที่ตั้งมี location_id ที่คงที่และสามารถบันทึกในโค้ดได้
ขั้นตอนที่ 1 ค้นหารายการตำแหน่งที่ตั้งโดยใช้เส้นทาง /network/find-locations ตัวอย่าง curl อยู่ด้านล่าง ซึ่งส่งผ่านไปยัง jq เพื่อดึงรายการ locations
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-locations -d '{"query": "<LOCATION NAME>"}' | jq '.locations'
ขั้นตอนที่ 2 เลือกตำแหน่งที่ตั้งที่สนใจและบันทึกคุณสมบัติ location_id
ขั้นตอนที่ 3 สร้างพร็อกซีโดยใช้ location_id ที่บันทึกไว้ โดยใช้เส้นทาง /network/auth-client และตั้งค่า proxy_config.initial_device_state.location ให้มี connect_location_id.location_id
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/auth-client -d '{"proxy_config": {"initial_device_state": {"location": {"connect_location_id":{"location_id": "<LOCATION ID>"}}}}}'
การใช้ API เพื่อสร้างพร็อกซี HTTPS/SOCKS/WireGuard สำหรับตำแหน่งที่ตั้งที่ค้นหา โดยระบุ IP ขาออกทั้งหมดในตำแหน่งที่ตั้งนั้น
สามารถใช้ API โดยตรงเพื่อค้นหาตำแหน่งที่ตั้ง ระบุผู้ให้บริการ (IP ขาออก) ในตำแหน่งที่ตั้งนั้น และสร้างพร็อกซี HTTPS/SOCKS/WireGuard สำหรับแต่ละ IP ขาออกได้ จะต้องตัดสินใจเลือกผลลัพธ์ตำแหน่งที่ตั้งที่ต้องการมากที่สุด แต่ละตำแหน่งที่ตั้งมี location_id ที่คงที่และสามารถบันทึกในโค้ดได้ นอกจากนี้ ผู้ให้บริการแต่ละรายมี client_id ที่คงที่และสามารถบันทึกในโค้ดได้
ขั้นตอนที่ 1 ค้นหารายการตำแหน่งที่ตั้งโดยใช้เส้นทาง /network/find-locations ตัวอย่าง curl อยู่ด้านล่าง ซึ่งส่งผ่านไปยัง jq เพื่อดึงรายการ locations
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-locations -d '{"query": "<LOCATION NAME>"}' | jq '.locations'
ขั้นตอนที่ 2 เลือกตำแหน่งที่ตั้งที่สนใจและบันทึก location_id
ขั้นตอนที่ 3 ดึงรายการจัดอันดับของผู้ให้บริการ (IP ขาออก) สำหรับ location_id โดยใช้เส้นทาง /network/find-providers2 สามารถตั้งค่าขนาดตัวอย่างเป็นจำนวนผู้ให้บริการที่ไม่ซ้ำกันที่ต้องการได้ ตัวอย่าง curl อยู่ด้านล่าง ซึ่งส่งผ่านไปยัง jq เพื่อดึงรายการ providers
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/find-providers2 -d '{"specs": [{"client_id": "<CLIENT ID>"}], "count": <COUNT>}' | jq '.providers'
ขั้นตอนที่ 4 โดยการวนซ้ำแต่ละ client_id ในรายการ สร้างพร็อกซีโดยใช้ client_id โดยใช้เส้นทาง /network/auth-client และตั้งค่า proxy_config.initial_device_state.location ให้มี connect_location_id.client_id
curl -X POST -H 'Authorization: Bearer <JWT>' https://api.bringyour.com/network/auth-client -d '{"proxy_config": {"initial_device_state": {"location": {"connect_location_id":{"client_id": "<CLIENT ID>"}}}}}'