ネットワーク プロキシ アーティファクト ProxyChains の迅速なインストール、構成、使用 - CentOS

CentOS に ProxyChains をインストールして構成するには、次の手順に従います。

  1. システム パッケージを更新します。

    sudo yum update
    
  2. プロキシチェーンをインストールします。

    sudo yum install proxychains-ng
    
  3. ProxyChains 構成ファイルを編集します。

    sudo vi /etc/proxychains.conf
    
  4. 構成ファイルで、次の行を見つけてコメントアウトしdynamic_chain、その行のコメントを解除しますstrict_chain

    #dynamic_chain
    strict_chain
    
  5. 構成ファイルの最後にプロキシ サーバーの情報を追加します。プロキシ サーバーのタイプに基づいて、適切な構成方法を選択します。

    • SOCKS5 プロキシ サーバーの場合は、次の行を追加し、proxy_addressと をproxy_portプロキシ サーバーのアドレスとポート番号に置き換えます。

      proxychains4 -f /path/to/proxychains.conf -D -n -s proxy_address proxy_port
      
    • HTTP プロキシ サーバーの場合は、次の行を追加し、proxy_addressと をproxy_portプロキシ サーバーのアドレスとポート番号に置き換えます。

      http proxy_address proxy_port
      
    • SOCKS4 プロキシ サーバーの場合は、次の行を追加し、proxy_addressと をproxy_portプロキシ サーバーのアドレスとポート番号に置き換えます。

      socks4 proxy_address proxy_port
      
    • プロキシ サーバーで認証が必要な場合は、対応する行の後にユーザー名とパスワードを追加できます。

      http proxy_address proxy_port username password
      

    設定ファイル:

    cat /etc/proxychains.conf 
    # proxychains.conf  VER 4.x
    #
    #        HTTP, SOCKS4a, SOCKS5 tunneling proxifier with DNS.
    
    
    # The option below identifies how the ProxyList is treated.
    # only one option should be uncommented at time,
    # otherwise the last appearing option will be accepted
    #
    #dynamic_chain
    #
    # Dynamic - Each connection will be done via chained proxies
    # all proxies chained in the order as they appear in the list
    # at least one proxy must be online to play in chain
    # (dead proxies are skipped)
    # otherwise EINTR is returned to the app
    #
    strict_chain
    #
    # Strict - Each connection will be done via chained proxies
    # all proxies chained in the order as they appear in the list
    # all proxies must be online to play in chain
    # otherwise EINTR is returned to the app
    #
    #round_robin_chain
    #
    # Round Robin - Each connection will be done via chained proxies
    # of chain_len length
    # all proxies chained in the order as they appear in the list
    # at least one proxy must be online to play in chain
    # (dead proxies are skipped).
    # the start of the current proxy chain is the proxy after the last
    # proxy in the previously invoked proxy chain.
    # if the end of the proxy chain is reached while looking for proxies
    # start at the beginning again.
    # otherwise EINTR is returned to the app
    # These semantics are not guaranteed in a multithreaded environment.
    #
    #random_chain
    #
    # Random - Each connection will be done via random proxy
    # (or proxy chain, see  chain_len) from the list.
    # this option is good to test your IDS :)
    
    # Make sense only if random_chain or round_robin_chain
    #chain_len = 2
    
    # Quiet mode (no output from library)
    #quiet_mode
    
    ## Proxy DNS requests - no leak for DNS data
    # (disable all of the 3 items below to not proxy your DNS requests)
    
    # method 1. this uses the proxychains4 style method to do remote dns:
    # a thread is spawned that serves DNS requests and hands down an ip
    # assigned from an internal list (via remote_dns_subnet).
    # this is the easiest (setup-wise) and fastest method, however on
    # systems with buggy libcs and very complex software like webbrowsers
    # this might not work and/or cause crashes.
    proxy_dns
    
    # method 2. use the old proxyresolv script to proxy DNS requests
    # in proxychains 3.1 style. requires `proxyresolv` in $PATH
    # plus a dynamically linked `dig` binary.
    # this is a lot slower than `proxy_dns`, doesn't support .onion URLs,
    # but might be more compatible with complex software like webbrowsers.
    #proxy_dns_old
    
    # method 3. use proxychains4-daemon process to serve remote DNS requests.
    # this is similar to the threaded `proxy_dns` method, however it requires
    # that proxychains4-daemon is already running on the specified address.
    # on the plus side it doesn't do malloc/threads so it should be quite
    # compatible with complex, async-unsafe software.
    # note that if you don't start proxychains4-daemon before using this,
    # the process will simply hang.
    #proxy_dns_daemon 127.0.0.1:1053
    
    # set the class A subnet number to use for the internal remote DNS mapping
    # we use the reserved 224.x.x.x range by default,
    # if the proxified app does a DNS request, we will return an IP from that range.
    # on further accesses to this ip we will send the saved DNS name to the proxy.
    # in case some control-freak app checks the returned ip, and denies to 
    # connect, you can use another subnet, e.g. 10.x.x.x or 127.x.x.x.
    # of course you should make sure that the proxified app does not need
    # *real* access to this subnet. 
    # i.e. dont use the same subnet then in the localnet section
    #remote_dns_subnet 127 
    #remote_dns_subnet 10
    remote_dns_subnet 224
    
    # Some timeouts in milliseconds
    tcp_read_time_out 15000
    tcp_connect_time_out 8000
    
    ### Examples for localnet exclusion
    ## localnet ranges will *not* use a proxy to connect.
    ## note that localnet works only when plain IP addresses are passed to the app,
    ## the hostname resolves via /etc/hosts, or proxy_dns is disabled or proxy_dns_old used.
    
    ## Exclude connections to 192.168.1.0/24 with port 80
    # localnet 192.168.1.0:80/255.255.255.0
    
    ## Exclude connections to 192.168.100.0/24
    # localnet 192.168.100.0/255.255.255.0
    
    ## Exclude connections to ANYwhere with port 80
    # localnet 0.0.0.0:80/0.0.0.0
    # localnet [::]:80/0
    
    ## RFC6890 Loopback address range
    ## if you enable this, you have to make sure remote_dns_subnet is not 127
    ## you'll need to enable it if you want to use an application that 
    ## connects to localhost.
    localnet 127.0.0.0/255.0.0.0
    localnet ::1/128
    
    ## RFC1918 Private Address Ranges
    # localnet 10.0.0.0/255.0.0.0
    # localnet 172.16.0.0/255.240.0.0
    # localnet 192.168.0.0/255.255.0.0
    
    ### Examples for dnat
    ## Trying to proxy connections to destinations which are dnatted,
    ## will result in proxying connections to the new given destinations.
    ## Whenever I connect to 1.1.1.1 on port 1234 actually connect to 1.1.1.2 on port 443
    # dnat 1.1.1.1:1234  1.1.1.2:443
    
    ## Whenever I connect to 1.1.1.1 on port 443 actually connect to 1.1.1.2 on port 443
    ## (no need to write :443 again)
    # dnat 1.1.1.2:443  1.1.1.2
    
    ## No matter what port I connect to on 1.1.1.1 port actually connect to 1.1.1.2 on port 443
    # dnat 1.1.1.1  1.1.1.2:443
    
    ## Always, instead of connecting to 1.1.1.1, connect to 1.1.1.2
    # dnat 1.1.1.1  1.1.1.2
    
    # ProxyList format
    #       type  ip  port [user pass]
    #       (values separated by 'tab' or 'blank')
    #
    #       only numeric ipv4 addresses are valid
    #
    #
    #        Examples:
    #
    #            	socks5	192.168.67.78	1080	lamer	secret
    #		http	192.168.89.3	8080	justu	hidden
    #	 	socks4	192.168.1.49	1080
    #	        http	192.168.39.93	8080	
    #		
    #
    #       proxy types: http, socks4, socks5, raw
    #         * raw: The traffic is simply forwarded to the proxy without modification.
    #        ( auth types supported: "basic"-http  "user/pass"-socks )
    #
    [ProxyList]
    # add proxy here ...
    # meanwile
    # defaults set to "tor"
    #socks4 	127.0.0.1 9050
    http Proxy_IP Proxy_Port
    
    
  6. ファイルを保存して閉じます。

これで、ProxyChains のインストールと構成が正常に完了しました。コマンド ラインからこのコマンドを使用してproxychains4他のコマンドを実行したり、プロキシ サーバー経由で接続したりできます。例えば:

proxychains4 git clone https://github.com/your_username/your_repository.git

git clone コマンドのプロキシ サーバー アドレス、ポート番号、および URL を適切に置き換えてください。

  1. 使用
proxychains4 git clone https://github.com/xxx/xxx.git
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib64/proxychains-ng/libproxychains4.so
[proxychains] DLL init: proxychains-ng 4.16
Cloning into 'Fooocus'...
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] Strict chain  ...  IP:Port  ...  IP:Port  ...  OK
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] Strict chain  ...  IP:Port  ...  IP:Port  ...  OK
remote: Enumerating objects: 1612, done.
remote: Counting objects: 100% (834/834), done.
remote: Compressing objects: 100% (243/243), done.
[proxychains] DLL init: proxychains-ng 4.16
remote: Total 1612 (delta 710), reused 622 (delta 581), pack-reused 778
Receiving objects: 100% (1612/1612), 22.84 MiB | 382.00 KiB/s, done.
Resolving deltas: 100% (982/982), done.
[proxychains] DLL init: proxychains-ng 4.16

おすすめ

転載: blog.csdn.net/holyvslin/article/details/132885252