Androidフォンをプロキシサーバーとして使用する


10

Androidフォンをプロキシサーバーとして使用したかったので、電話のIPをプロキシとして使用できるようにしたいので、すべての要求と応答が電話で受信され、元のリクエスタに転送されます。どうすればよいですか?

回答:


6

Servers Ultimateは、携帯電話をサーバーに変えるための高度なアプリです。同じ開発者によって、Proxy Serverはより基本的で、完全に「プロキシサーバーベース」のアプローチを提供します。その説明で述べたように:

デバイスで独自のプロキシサーバーを実行します。アプリはHTTPおよびHTTPSプロトコルとGET / POSTリクエストを処理できます。すべての接続をデフォルトのホストとポートに転送するようにアプリを設定して、ソケットを通じて他のプロトコルも使用できるようにすることもできます。

彼らは後で追加します

より多くのサーバーと機能については、当社のアプリServers Ultimateをご覧ください。

サーバーの究極についてのいくつかの追加情報については、確認してくださいライフハッカーの記事XDAでこの記事を、そして自分のXDAのスレッドをアプリ


WiFi IPを使用してプロキシサーバーに接続し、すべての送信接続でデータ接続を使用するように設定しようとしています。これは可能ですか?
Arya

こんにちは@Arya、あなたはそれを行う方法を見つけましたか?
ニックキャラウェイ

@ Arya、adbを使用して私の答えを確認してください
ニックキャラウェイ

5

Wifi経由でプロキシを設定することに興味がある場合は、Servers Ultimateを使用して簡単に設定できますが、なぜ誰が本当にそうしたいのかはわかりません。さらに便利なオプションはモバイルデータを使用することですが、@ Kevinが言ったように、ISPレベル(Verizon、AT&Tなど)で多くの頭痛の種に直面することになります。おそらく、あなたは彼らにあなたのために彼らのNATポリシーを変更させないでしょう。

すべての着信接続がブロックされるため、モバイルデータをプロキシとして使用するのは困難です。ただし、ラップトップをwifiに接続し、携帯電話をadb経由でラップトップに接続している場合、1つのオプションは次のようなコマンドを実行することです。

adb forward tcp:6400 tcp:8080

このコマンドは、ホスト(ラップトップ)の6400ポートに送信されたすべてのTCP接続を電話の8080ポートに転送します。次に、ポート8080で実行されているServers Ultimateアプリにプロキシサーバーを設定します。ルートは必要ありません。

これで、ポート6400を介したラップトップへの要求はすべてモバイルデータに転送されます。これをテストするには、Firefoxを開き、設定、ネットワークに移動し、127.0.0.1とポート6400をプロキシとして使用します。ルーターを開いて、このポートを使用してパブリックwifi経由でアクセスできますが、セキュリティポリシーを設定することをお勧めします。

ノートパソコンで開発者向けオプションとadbを有効にするためのチュートリアルはたくさんあります。簡単です。


これは実際に機能する可能性があります:)私は今日それを試します
Arya '26

できます!驚くばかり!
Arya

これはSOCKSサーバーを作成しますか?HTTPプロキシサーバーが必要な場合、Polipoなどを使用してSOCKSをHTTPプロキシに変換する必要がありますか。
アリア2018

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, Servers Ultimateでは、4Gを介して(WiFiを介してではなく)プロキシを設定できないことに同意しますか?(私は4G経由でプロキシを設定でき、それが可能かどうか知りたいのでお願いします)
ハートマット

素晴らしい。ありがとうございました。
キラン

1

Servers Ultimateのプロキシサーバーを機能させるのに問題がありました。最初に考えたのは、私の電話がルート化されていないためです。ただし、ユースケースによっては、ここでの問題は実際には必ずしもOSレベルであるとは限りません。

モバイルデータ接続をプロキシとして使用しようとしている場合、ほとんどのモバイルデータプロバイダーが通常はプロキシの設定に使用できるすべてのポートをブロックするため、問題が発生する可能性があります。あなたの最善の策は、モバイルデータプロバイダーに連絡して、1024の値を超えて開いているポートがあるかどうかを確認することです(Androidは、セキュリティ上の理由から、この数値より下のポートをブロックします)。

または、次のこともできます。

  • Wifiでプロキシサーバーを使用するが、ルーターでプロキシポートが開いていることを確認する
  • モバイルデータ接続を使用するようにポート転送を設定できるように、電話をルート化します
  • 通常開いている1024未満のポート値を使用できるように、電話をルート化します。

これが事実であることを理解するために、ポートを開いた状態で、WifiでサーバーUltimateプロキシサーバーを実行してみてください。機能するものがありますが、モバイルデータを使用することが目標である場合、今のところ運が悪いです。


0

スマートフォンがルート化されている(または少なくともブートローダーがロック解除されている)場合は、tinyproxy(HTTP / HTTPSプロキシ)をinitサービスとして実行できます。Wi-Fiとモバイルデータの両方で機能します。後者の場合、インターネットから携帯電話にアクセスできることを確認する必要があります。3G / 4GパブリックIP上のSSHを介してAndroidに接続する方法を参照してください

  • /dataまたはにディレクトリを作成します/system
    ~# mkdir -p /data/local/tinyproxy/tmp
    
  • 構成ファイルを作成します。

    # /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>
    

    詳細な構成オプションについては、ドキュメントを参照してください。

  • tinyproxyソースからビルドするか、これを試してください。バイナリをに移動して/data/local/tinyproxy/権限を設定します。使用AID_NOBODYやサービスの他、未使用のUID:
    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
    
  • /init.rcまたはその他の.rcファイルに次の行を追加します。

    # /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
    

ファイアウォールアプリを使用している場合は、受信ポートのブロックを解除してください8080。デバイスを再起動します。tinyproxyサーバーは最小限の特権で実行する必要があります。ローカルまたはリモートで接続します。


PS:

電話がroot化されていない場合、またはプロキシサーバーをさらにサンドボックス化する場合は、次のルールを使用してSELinuxポリシーにパッチを適用できます。使用Magiskのsupolicyツールまたは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
  • 拒否を確認してdmesgavc必要なルールをさらに定義します。
  • seclabel u:r:magisk:s0稼働中のと交換しますseclabel u:r:tinyproxy:s0
  • SELinuxコンテキストを設定します。
    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy
    

これで、サービスはMagiskなしでも実行されます。


関連:

SOCKSプロキシはSSHで実行できます。以下を参照してください:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.