sử dụng điện thoại Android làm máy chủ proxy


10

Tôi muốn sử dụng điện thoại Android của mình làm máy chủ proxy, nghĩa là tôi muốn có thể sử dụng IP trên điện thoại làm proxy, vì vậy tất cả yêu cầu và phản hồi đều được nhận trên điện thoại và được chuyển lại cho người yêu cầu ban đầu. Làm thế nào để tôi làm điều này?

Câu trả lời:


6

Servers Ultimate là một ứng dụng nâng cao để biến điện thoại của bạn thành máy chủ. Với cùng một nhà phát triển, Proxy Server cung cấp cách tiếp cận "dựa trên máy chủ proxy" cơ bản hơn và duy nhất. Như đã nêu trên mô tả của nó:

Chạy Proxy Server của riêng bạn trên thiết bị của bạn! Ứng dụng có thể xử lý các giao thức HTTP và HTTPS và các yêu cầu GET / POST. Bạn thậm chí có thể đặt ứng dụng để chuyển tiếp tất cả các kết nối đến một máy chủ và cổng mặc định để bạn có thể sử dụng các giao thức khác thông qua ổ cắm!

Họ sau này thêm

Để biết thêm máy chủ và tính năng, hãy xem ứng dụng Servers Ultimate của chúng tôi

Để biết thêm thông tin về Máy chủ Ultimate, hãy xem bài viết này trên LifeHacker , bài viết này về XDAcác chủ đề XDA sở hữu ứng dụng .


Tôi đang cố gắng thiết lập điều này theo cách mà tôi kết nối với máy chủ proxy bằng WiFi IP và tất cả các kết nối đi sẽ sử dụng kết nối dữ liệu. Điều này có thể không?
Arya

Này @Arya, bạn đã tìm ra cách để làm điều đó chưa?
nick carraway

@Arya, hãy xem câu trả lời của tôi bằng adb
nick carraway

5

Nếu bạn chỉ muốn thiết lập proxy qua Wifi, bạn có thể thực hiện điều đó với Servers Ultimate khá dễ dàng, nhưng tôi không biết tại sao mọi người thực sự muốn làm điều đó. Một tùy chọn hữu ích hơn nhiều là sử dụng dữ liệu di động, nhưng như @Kevin nói rằng bạn sẽ gặp rất nhiều vấn đề đau đầu, cụ thể là ở cấp độ ISP (Verizon, AT & T, v.v.). Có thể bạn sẽ không khiến họ thay đổi chính sách NAT của họ cho bạn.

Thật khó để sử dụng dữ liệu di động của bạn làm proxy vì tất cả các kết nối đến đều bị chặn. Nhưng, nếu bạn có một máy tính xách tay được kết nối với wifi và điện thoại của bạn được kết nối với máy tính xách tay của bạn thông qua adb, một tùy chọn là chạy một lệnh như thế này:

adb forward tcp:6400 tcp:8080

Lệnh này chuyển tiếp tất cả các kết nối TCP được gửi đến cổng 6400 của máy chủ (máy tính xách tay) của bạn đến cổng 8080 của điện thoại. Tiếp theo, hãy thiết lập máy chủ proxy trên Ứng dụng máy chủ cuối cùng của bạn chạy trên cổng 8080. Không cần root!

Bây giờ, mọi yêu cầu đến máy tính xách tay của bạn qua cổng 6400 sẽ được chuyển tiếp đến dữ liệu di động của bạn! Kiểm tra điều này bằng cách mở firefox, đi đến cài đặt, Mạng và sử dụng 127.0.0.1 và cổng 6400 làm proxy. Bạn có thể mở bộ định tuyến của mình để truy cập qua wifi công cộng bằng cổng này, mặc dù tôi khuyên bạn nên thiết lập một số loại chính sách bảo mật.

Có rất nhiều hướng dẫn để kích hoạt tùy chọn nhà phát triển và adb trên máy tính xách tay của bạn, thật dễ dàng.


Điều này thực sự có thể hoạt động :) Tôi sẽ thử ngay hôm nay
Arya

Nó hoạt động! tuyệt vời!
Arya

Điều này sẽ tạo ra một máy chủ SOCKS phải không? Nếu ai đó muốn máy chủ proxy HTTP thì họ sẽ phải sử dụng cái gì đó như Polipo để chuyển đổi SOCKS sang proxy HTTP?
Arya

If you're just interested in setting a proxy up over your Wifi, you can do that with Servers Ultimate quite easily, but I don't know why anyone would really want to do that. A much more useful option is to use mobile data, Bạn có đồng ý rằng việc thiết lập proxy qua 4G (trái ngược với WiFi) là không thể với Servers Ultimate không? (Tôi hỏi vì tôi có thể thiết lập proxy qua 4G và muốn biết liệu điều đó có khả thi hay không)
hartmut

Siêu. Cảm ơn bạn.
Kiran

1

Tôi gặp một số khó khăn khi máy chủ proxy của Servers Ultimate hoạt động và suy nghĩ đầu tiên của tôi là do điện thoại của tôi không được root. Tuy nhiên, vấn đề ở đây thực sự không nhất thiết ở cấp độ HĐH, tùy thuộc vào trường hợp sử dụng của bạn.

Nếu bạn đang cố gắng sử dụng kết nối dữ liệu di động của mình làm proxy, bạn có thể gặp một số rắc rối, vì hầu hết các nhà cung cấp dữ liệu di động sẽ chặn bất kỳ cổng nào mà bạn thường có thể sử dụng để thiết lập proxy. Đặt cược tốt nhất của bạn là liên hệ với nhà cung cấp dữ liệu di động và xem liệu họ có bất kỳ cổng nào mở vượt quá giá trị 1024 (Android chặn các cổng dưới số này vì lý do bảo mật).

Ngoài ra, bạn có thể:

  • Sử dụng máy chủ proxy trên Wifi, nhưng đảm bảo rằng cổng proxy được mở trong bộ định tuyến của bạn
  • Root điện thoại của bạn để bạn có thể thiết lập chuyển tiếp cổng để sử dụng kết nối dữ liệu di động của bạn
  • Root điện thoại của bạn để bạn có thể sử dụng các giá trị cổng bên dưới 1024 thường mở.

Để nhận ra đây là trường hợp, hãy thử chạy máy chủ proxy Servers Ultimate trên Wifi với cổng được mở. Bạn sẽ có một cái gì đó có chức năng, nhưng nếu mục tiêu của bạn là sử dụng dữ liệu di động, bây giờ bạn đã hết may mắn.


0

Nếu điện thoại của bạn đã được root (hoặc ít nhất là bộ tải khởi động đã được mở khóa), bạn có thể chạy tinyproxy (proxy HTTP / HTTPS) dưới dạng initdịch vụ. Nó hoạt động với cả Wi-Fi và Dữ liệu di động, trong trường hợp sau bạn phải đảm bảo điện thoại của mình có thể truy cập được từ internet. Xem Cách kết nối với Android thông qua SSH qua IP công cộng 3G / 4G?

  • Tạo một thư mục trên /datahoặc /system:
    ~# mkdir -p /data/local/tinyproxy/tmp
    
  • Tạo tập tin cấu hình:

    # /data/local/tinyproxy/tinyproxy.conf
    
    Port 8080
    Timeout 600
    LogFile "/tinyproxy.log"
    LogLevel Connect
    MaxClients 100
    MinSpareServers 5
    MaxSpareServers 20
    StartServers 5
    MaxRequestsPerChild 0
    ViaProxyName "tinyproxy"
    #BasicAuth <username> <password>
    

    Để biết thêm tùy chọn cấu hình, xem tài liệu .

  • Xây dựng tinyproxytừ nguồn hoặc có thể thử cái này . Di chuyển nhị phân đến /data/local/tinyproxy/và đặt quyền. Sử dụng AID_NOBODYhoặc bất kỳ UID không sử dụng nào khác cho dịch vụ:
    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
    
  • Thêm các dòng sau vào /init.rchoặc bất kỳ .rctệp nào khác :

    # /system/etc/init/tinyproxy.rc
    
    service tinyproxy /system/bin/chroot /data/local/tinyproxy /tinyproxy -d -c /tinyproxy.conf
        seclabel u:r:magisk:s0
        user 9999
        group 9999
        disabled
        capabilities NET_RAW NET_BIND_SERVICE SYS_CHROOT
    
    on property:sys.boot_completed=1
        start tinyproxy
    

Nếu sử dụng bất kỳ ứng dụng tường lửa nào, hãy đảm bảo bỏ chặn cổng đến 8080. Thiết bị khởi động lại. tinyproxymáy chủ nên được chạy với ít đặc quyền nhất. Kết nối cục bộ hoặc từ xa.


Tái bút

Nếu điện thoại không được root hoặc bạn muốn thêm hộp cát vào máy chủ proxy, bạn có thể vá chính sách SELinux bằng các quy tắc sau. Sử dụng supolicycông cụ Magisk hoặc sepolicy-inject:

create tinyproxy
allow init tinyproxy process transition
allow init tinyproxy process { rlimitinh siginh noatsecure }
allow tinyproxy tinyproxy process { getsched fork }
allow tinyproxy toolbox_exec file { entrypoint read getattr execute }
allow tinyproxy tinyproxy dir { search write add_name remove_name }
allow tinyproxy tinyproxy lnk_file read
allow tinyproxy labeledfs filesystem associate
allow tinyproxy tinyproxy file { read open getattr create write append unlink execute execute_no_trans }
allow tinyproxy tinyproxy capability { sys_chroot net_raw }
allow tinyproxy tinyproxy unix_dgram_socket { create connect write }
allow tinyproxy tinyproxy tcp_socket { create connect accept read bind getattr write shutdown setopt listen }
allow tinyproxy port tcp_socket { name_connect name_bind }
allow tinyproxy node tcp_socket node_bind
allow tinyproxy tinyproxy udp_socket { create connect read getattr write bind }
allow tinyproxy node udp_socket node_bind
allow tinyproxy system_data_file file lock
allow tinyproxy tinyproxy file lock
  • Kiểm tra dmesgcho avcsự từ chối để xác định bất kỳ quy tắc cần thiết hơn.
  • Thay thế seclabel u:r:magisk:s0trong dịch vụ với seclabel u:r:tinyproxy:s0.
  • Đặt bối cảnh SELinux:
    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy
    

Bây giờ dịch vụ sẽ chạy mà không có Magisk.


LIÊN QUAN:

SOCKS proxy có thể được chạy bằng SSH, xem:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.