Comment envoyer tout le trafic Internet à un serveur proxy SOCKS5 dans le réseau local? -- networking domaine et terminal domaine et proxy domaine et firewall domaine et iptables domain android en relation problème

How to send all internet traffic to a SOCKS5 proxy server in local network?



3
vote

problème

français

J'ai eu l'inspiration ici . Il semble que Afwall + est capable de créer une stratégie de transfert de NAT afin de garder tout le trafic traversant une proxy SOCKS5 et de tromper Google Apps dans la pensée qu'ils ne sont pas connectés via une VPN (Google Apps met en œuvre des mesures de sécurité supplémentaires lors de la connexion via VPNService et si vous êtes en Chine, vous ne passerez pas la vérification de la sécurité - les demandes de vérification de la sécurité ne passent pas via VPN. Ils seront donc EOF car gfw tuera ces demandes, en savoir plus ICI ).

Donc, ma question est, si disons que je dispose d'un serveur Socks5 exécutant à 192.168.1.1:1088 quel tunnels toutes les connexions via vmess protocole (AKA V2Ray ) Pour les serveurs distants aux États-Unis, comment créer mon script personnalisé? J'ai essayé:

IP6TABLES=/system/bin/ip6tables IPTABLES=/system/bin/iptables ULIMIT=/system/bin/ulimit PORT=1088 SERVER=192.168.1.1 $ULIMIT -n 4096 $IP6TABLES -F $IP6TABLES -A INPUT -j DROP $IP6TABLES -A OUTPUT -j DROP $IPTABLES -t nat -F OUTPUT $IPTABLES -t nat -A OUTPUT -o lo -j RETURN $IPTABLES -t nat -A OUTPUT -d 127.0.0.1 -j RETURN $IPTABLES -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to-destination $SERVER:$PORT $IPTABLES -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination $SERVER:$PORT $IPTABLES -t nat -A OUTPUT -p tcp -j DNAT --to-destination $SERVER:$PORT $IPTABLES -t nat -A OUTPUT -p udp -j DNAT --to-destination $SERVER:$PORT

Cela ne fonctionne pas. Donc:

  1. ai-je créé un mauvais script? Comment créer un script qui fait ce que je veux faire?
  2. Y a-t-il d'autres paramètres que je devrais activer en premier? Je n'ai pas coché une application donc je suppose que signifie que toute application passe par un script personnalisé, non?
langue Anglaise

I got the inspiration here. It looks like AFWall+ is able to create a NAT forwarding policy to keep all traffic going through a SOCKS5 proxy and fool Google apps into thinking they are not connected via a VPN (Google apps implement additional security measures when connecting via VPNService and if you are in China you will not pass the security check - the security check requests don't go through VPN, so they will EOF because GFW will kill these requests, read more here).

So my question is, if let's say I have a socks5 server running at 192.168.1.1:1088 which tunnels all connections via vmess protocol (aka V2Ray) to remote servers in the US, how do I create my custom script? I have tried:

IP6TABLES=/system/bin/ip6tables IPTABLES=/system/bin/iptables ULIMIT=/system/bin/ulimit PORT=1088 SERVER=192.168.1.1 $ULIMIT -n 4096 $IP6TABLES -F $IP6TABLES -A INPUT -j DROP $IP6TABLES -A OUTPUT -j DROP $IPTABLES -t nat -F OUTPUT $IPTABLES -t nat -A OUTPUT -o lo -j RETURN $IPTABLES -t nat -A OUTPUT -d 127.0.0.1 -j RETURN $IPTABLES -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to-destination $SERVER:$PORT $IPTABLES -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination $SERVER:$PORT $IPTABLES -t nat -A OUTPUT -p tcp -j DNAT --to-destination $SERVER:$PORT $IPTABLES -t nat -A OUTPUT -p udp -j DNAT --to-destination $SERVER:$PORT 

This does not work. So:

  1. Did I create a wrong script? How do I create a script that does what I want to do?
  2. Are there other settings that I should enable first? I didn't tick any app so I assume that means all app go through custom script, right?
              

Liste de réponses

4
 
vote
vote
Meilleure réponse
 

the lien que vous avez fourni est Ne pas configurer des chaussettes mais une proxy transparente Il prend le trafic TCP / UDP et SOCKSIFY il avant d'envoyer via shadowsocks tunnel. Mais vous devez faire votre trafic les chaussettes - conscientes avant de diriger vers Socks Proxy. Soit configurer des applications individuelles (qui ont une prise en charge intégrée aux chaussettes) ou appliquer le système de proxy à l'échelle de manière transparente (ce que vous essayez de faire).

Limitations de chaussettes proxy:

On dirait que Afwall + est capable de créer une stratégie de transfert de NAT

Afwall + utilise iptables à l'arrière et peut exécuter votre script sur les modifications réseau. Application du proxy global est (au moins partiellement) possible avec Proxificifier comme ProxyDroid (qui est iptables -Based) et SOCKSDroid (qui est basé sur VPN / routage). Je n'ai aucune affiliation avec non plus.

Si le workig de CLI de CLI, vous pouvez utiliser un redirecteur transparent tcp / udp-to-proxy comme redsocks en combinaison avec iptables . shadowsocks fournit son propre outil similaire ( ss-redir ), donc tor.

Je n'ai coché aucune application alors je suppose que cela signifie que toutes les applications se déroulent dans le script personnalisé, non?

Non. Le problème avec l'approche 9988777667 est que Socks5 est un protocole de couche 5 dans le modèle OSI. Donc, il ne peut pas transporter tout le trafic de toutes les applications . La majeure partie du trafic généré par les applications est TCP qui fonctionne bien avec des chaussettes et est facile à configurer. Mais certains jeux, les applications VoIP et surtout le DNS traditionnel génèrent UDP Trafic qui n'est pas pris en charge par de nombreux proxies SOCKS5. Par exemple. openssh et tor NE PAS, iptables0 a toutefois ASSOCIÉ UDP . Mais il ne fonctionne pas avec simple 99887776611 ou 99887776612 (probablement parce que 99887776613 n'est pas disponible pour les sockets UDP, Je ne connais pas les détails). Vous pouvez éventuellement rediriger le trafic uniquement vers une prise fixe (IP: Port) par exemple. un serveur DNS ou un serveur de jeu.

iptables4 < / a> est l'alternative ici, mais le problème est que cela ne fonctionne que avec iptables5 chaîne, c'est-à-dire le trafic provenant de l'extérieur, non pas généré sur le périphérique. Vous devez donc faire une configuration supplémentaire pour acheminer votre trafic sur les périphériques sans vous détendre vers un serveur de proxy local (passerelle par défaut) où vous allez configurer iptables6 .

compliqué? C'est pourquoi VPN est préféré. Même si vous devez utiliser un proxy pour contourner les pare-feu, le tunneling VPN par le biais de proxy des pièces de rechange de la complexité de la redirection de la circulation . VPN fonctionne au niveau inférieur de la pile de réseau (L2 / L3 dans OSI), de sorte que cela porte parfaitement tout le trafic IP, y compris les échos ICMP ( iptables7 ), etc., qui ne peut être envoyé à travers des chaussettes. Un autre point de plus est que VPN peut être tunnelé via des proxies transparents - comme 99887776618 iptables9 - ou des proxies de chaussettes qui sont destinées à en avant Seul un seul port - comme iptables0 .

S'il ne renvoie pas un port unique (tunneling), Socks5 doit être un proxy de niveau d'application c'est-à-dire. Il devrait être en mesure de transférer des ports arbitraires de DI Des applications ferent telles que le transfert de port dynamique SSH.

iptables1 est une autre méthode de sockfication qui recueille le trafic TCP / UDP sur une interface 99887776622 (identique comme un VPN, pas de NAT impliqué) et la transmet à travers un proxy de chaussettes. Il a récemment ajouté le support associé UDP. Auparavant utilisé Passerelle UDP a également fonctionné assez bien, mais il nécessite d'exécuter un démon distinct ( iptables3 ) avec le serveur proxy. 99887776624 est une solution non root parce que des applications - comme 99887776625 et de nombreux autres pare-feu, renifler, etc. - Utilisation de cette méthode s'appuient sur les installations VPN d'Android .

... et incroyez Google Apps dans la pensée qu'ils ne sont pas connectés via une VPN (Google Apps met en œuvre des mesures de sécurité supplémentaires lors de la connexion via iptables6 ...

avec les deux méthodes ci-dessus (VPN via Tunnel et Tun-To-Socks) Il n'est pas nécessaire d'utiliser Android VPNService API (si cela cause des problèmes pour vous). Sur un périphérique enraciné, vous pouvez obtenir un iptables7 99887776628 binaire et exécutez cela par CLI. C'est beaucoup moins de tracas que de configurer le proxy à travers iptables9 . Dans l'ancien cas, cependant, vous avez besoin d'un serveur VPN évidemment.

redsocks0 IFY Tout le périphérique entier:

Comme vous ne voulez pas utiliser une solution basée sur VPN / routage, voici la méthode simple 99887776631 -Based.

premier get 99887776632 binaire pour votre architecture de périphérique (ou essayez Celui-ci pour redsocks3 ou Celui-ci pour redsocks4 ). Créer un fichier de configuration:

redsocks5

* Voir réfâpable Pour plus de détails et plus d'options.

RUN:

redsocks6

Vous pouvez ajouter personnalisé 99887776637 script à Afwall +. redsocks8 peut être exécuté comme redsocks9 Service avec des fonctionnalités non racines, des capacités abandonnées et un contexte SELINUX restreint. Voir Comment exécuter un exécutable au démarrage?

lié:

  • Pourquoi toutes les trafics sont-ils capturés de mon appareil lors de l'acheminement via Proxy?
  • Comment mettre en place une chaussette5 avec Android CLI?

 

The link you have provided is not setting up SOCKS but a transparent proxy i.e. it takes TCP/UDP traffic and SOCKSify it before sending through shadowsocks tunnel. But you need to make your traffic SOCKS-aware before directing towards SOCKS proxy. Either configure individual apps (which have built-in support for SOCKS) or enforce proxy system-wide transparently (what you are trying to do).

LIMITATIONS OF SOCKS PROXY:

It looks like AFWall+ is able to create a NAT forwarding policy

AFWall+ uses iptables at back end and it can execute your script on network changes. Enforcing global proxy is (at least partially) possible with proxifier apps like ProxyDroid (which is iptables-based) and SocksDroid (which is VPN/routing based). I have no affiliation with either.

If manually workig from CLI, you can use a transparent TCP/UDP-to-proxy redirector like redsocks in combination with iptables. shadowsocks provides its own similar tool (ss-redir), so does Tor.

I didn't tick any app so I assume that means all app go through custom script, right?

No. The problem with the iptables approach is that SOCKS5 is a layer 5 protocol in OSI model. So it cannot carry whole traffic from all apps. Most of the traffic generated by apps is TCP which works fine with SOCKS and is easy to setup. But some games, VoIP apps and above all the traditional DNS generate UDP traffic which is not supported by many SOCKS5 proxies. E.g. openssh and tor both don't, shadowsocks however does have UDP associate features. But it doesn't work with simple DNAT or REDIRECT (probably because SO_ORIGINAL_DST is not available for UDP sockets, I don't know the details). You can possibly redirect traffic only towards a fixed socket (IP:PORT) e.g. a DNS server or game server.

TPROXY is the alternative here, but the trouble is that it works only with PREROUTING chain i.e. the traffic coming from outside, not that generated on device. So you have to do extra setup to route your on-device traffic without NATing towards a local proxy server (usually default gateway) where you'll set up TPROXY.

Complicated? That's why VPN is preferred. Even if you need to use a proxy to circumvent firewalls, VPN tunneling through proxy spares you from the traffic redirection complexities. VPN operates at lower level in network stack (L2/L3 in OSI), so it flawlessly carries all IP traffic including ICMP echos (ping) etc. which can no way be sent through SOCKS. Another plus point is that VPN can be tunneled through transparent proxies - like shapeshifter-dispatcher and stunnel - or SOCKS proxies which are meant to forward only single port - like obfs4proxy.

If not forwarding single port (tunneling), SOCKS5 must be an application level proxy i.e. it should be able to forward arbitrary ports from different apps like SSH dynamic port forwarding does.

tun2socks is another SOCKSification method which collects TCP/UDP traffic on a tun interface (same like a VPN, no NAT involved) and forwards it through a SOCKS proxy. It recently added UDP associate support. Previously used UDP Gateway method also worked quite fine but it requires running a separate daemon (udpgw) along with proxy server. tun2socks is a non-root solution because apps - like SocksDroid and many other firewalls, sniffers etc. - using this method rely on Android's VPN facilities.

... and fool Google apps into thinking they are not connected via a VPN (Google apps implement additional security measures when connecting via VPNService ...

With both above methods (VPN through tunnel and Tun-to-SOCKS) it's not necessary to use Android's VPNService API (if that's causing problems for you). On a rooted device you can get a static openvpn or tun2socks binary and run that through CLI. That's far less hassle than setting up proxy through iptables. In former case, though, you need a VPN server obviously.

SOCKSIFY WHOLE DEVICE:

As you don't want to go with VPN/routing based solution, here is the simple iptables-based method.

First get redsocks binary for your device architecture (or try this one for aarch64 or this one for armeabi-v7a). Create configuration file:

// redsocks.conf  // general configuration base {     redirector = iptables; }  // for TCP redsocks {     local_ip = "127.0.0.1"; local_port = "12345";     ip = "192.168.1.1"; port = "1088"; type = socks5; }  // for UDP, assuming your SOCKS5 proxy supports UDP associate redudp {     local_ip = "127.0.0.1"; local_port = "12345";     ip = "192.168.1.1"; port = "1088";     dest_ip = "1.1.1.1"; dest_port = "53";  /* set whatever DNS server */ } 

* See redsocks.conf.example for details and more options.

Run:

#!/system/bin/sh  IPTABLES="/system/bin/iptables -w5 -t nat"  # create new chain $IPTABLES -N PROXY $IPTABLES -I OUTPUT -j PROXY  # exclude local traffic, see: http://manpages.org/ss-redir $IPTABLES -A PROXY -d 127.0.0.0/8 -j RETURN $IPTABLES -A PROXY -d 192.168.0.0/16 -j RETURN  # socksify whole TCP traffic $IPTABLES -A PROXY -p tcp -j DNAT --to 127.0.0.1:12345  # socksify only DNS UDP traffic $IPTABLES -A PROXY -p udp --dport 53 -j DNAT --to 127.0.0.1:12345  echo "Ctrl^C to exit." trap "$IPTABLES -D OUTPUT -j PROXY; $IPTABLES -F PROXY; $IPTABLES -X PROXY" EXIT  # run socksifier redsocks -c /path/to/redsocks.conf 

You can add custom iptables script to AFWall+. redsocks can be run as init service with non-root UID, dropped capabilities and restricted SELinux context. See How to run an executable on boot?


RELATED:

  • Why is not all traffic captured from my device when routing through proxy?
  • How to set up a socks5 with Android CLI?
 
 
       
       

Questions connexes

2  Comment puis-je contourner Android 9 VPN avec iptables?  ( How can i bypass android 9 vpn with iptables ) 
Je ciblage une application spécifique avec la règle UID -m owner --uid-owner 1337 et je veux que cette application contourne toujours VPN et utilisez une co...

0  Est-il possible de changer l'utilisateur de quelque chose comme un fournisseur de localisation fusionné?  ( Is it possible to change the userid of something like fused location provider ) 
J'ai un groupe d'applications groupées sous Userid sur ma ROM de stock, y compris Fournisseur de localisation fusionné . Étant donné que j'utilise Afwall + ...

1  Dispositif attaché à terme?  ( Forward tethered device ) 
D'accord, donc j'ai un PI de framboise (192.168.42.53 sur RNDIS0) qui est attaché à une tablette Android pour accéder à Internet. La tablette est connectée à ...

2  Dnat iptables Rule sur le téléphone Android enraciné?  ( Dnat iptables rule on rooted android phone ) 
Comment je peux définir iptables règle comme celle-ci sur mon téléphone Android enraciné: iptables -t nat -A PREROUTING -i wlan0 -s 192.168.1.100 -p tcp ...

3  Comment puis-je ajouter des règles iptables qui persistent sur les redémarrages?  ( How can i add iptables rules that persist across reboots ) 
Je veux ajouter une règle d'iptables sur mon téléphone Android. J'ai utilisé: iptables -t nat -A PREROUTING -p 6 -d 192.168.66.1 --dport 80 -j DNAT --to 19...

2  Où devrais-je placer la mise à jour iptables sur Android au démarrage?  ( Where should i place iptables update on android at boot time ) 
J'ai besoin d'écrire des valeurs spécifiques dans le système de routage à l'aide de la commande 9988777660 pour Android. L'idée globale est que l'utilisat...

2  Comment inverser l'attache USB avec VPN [Interface Tun0] Routage?  ( How to reverse usb tethering with vpn tun0 interface routing ) 
J'ai un gros problème et après plusieurs jours, je ne trouve aucune solution parce que je ne suis pas un utilisateur expérimenté Linux ... Problème: J'utili...

1  Comment activer la transmission IP Android  ( How to enable android ip forwarding ) 
à Linux, nous pouvons, # echo 1 > /proc/sys/net/ipv4/ip_forward ou, # sysctl -w net.ipv4.ip_forward=1 Il n'y a pas de sysctl commande ni 998...

1  Application qui survit une réinitialisation d'usine  ( App that survives a factory reset ) 
Mon problème est théorique en ce moment. J'examine si cela est possible ou non, avant de passer des heures dessus. J'ai un téléphone enraciné. Je veux aj...

0  Comment bloquer mon adresse IP externe de la connexion à un réseau local distant?  ( How do i block my external ip adress from connecting to a remote lan ) 
Ma cellule est en train d'être diffusée sur un réseau local. J'ai enraciné mon téléphone et j'utilise Afwall +. J'ai essayé iPtables -a Sortie -S -S 192.0.0...




© 2022 www.demandez.top All Rights Reserved. Questions et réponses Accueil Tous les droits sont réservés