como acelerar os pedidos de http em uma máquina linux?

7

EDIT: aqui é o verão: eu preciso reduzir conexões máximas de preferência em todo o sistema no Ubuntu 11.04, mas pelo menos no Google Chrome. eu faço não precisa ou quer limitar a largura de banda, a Verizon parece se preocupar apenas com o número de conexões, de modo que é tudo que eu quero mudar. Além disso, eu não quero usar o Firefox, a menos que eu tenha que, eu tenho três outras máquinas usando cromo e sincronizadas e eu só prefiro o Firefox.

Eu uso tethering para minha conexão de internet em casa através do meu celular Verizon. sem pagar por isso. isso funciona muito bem para streaming de netflix via meu nintendo wii e praticamente qualquer outro uso concebível que eu tinha para ele. Exceto, durante o uso pesado com várias guias abertas no meu laptop, a conexão de rede no meu telefone será desligada, ligada novamente e desligada, mas nunca conectará totalmente.

eu acho que, com base em este e outras perguntas que isso é causado por verizon recebendo muitos pedidos http do meu telefone. Existe algum software, script, configuração ou de outra forma que me permita acelerar meus pedidos para dizer, 5 ou 10 ou o que acontece é 1 menos do que a verizon está procurando, para que a conexão de rede da minha célula não é perdida?

Eu preferiria uma desaceleração mais lenta do que completa da minha conexão com a internet. Estou quase certo de que é a quantidade de pedidos e não relacionados a dados, porque, como mencionei, o Netflix será executado durante todo o dia sem problemas e que usa mais dados do que qualquer outra coisa que eu estaria fazendo. Se eu tivesse um roteador, eu tenho certeza que existem configurações que eu poderia facilmente alterar para permitir apenas tantos pedidos de cada vez ... mas, neste caso, meu telefone é meu roteador, então não há configurações. estou usando o Ubuntu 11,04 no meu netbook com um HTC incrível na Verizon (não que os detalhes do telefone são relevantes)

Eu tenho tentado descobrir isso há algum tempo, atualmente a única correção é garantir que todas as solicitações sejam interrompidas e, às vezes, ele funcione novamente, outras vezes eu tenho que desligar manualmente o meu serviço 3G e ligá-lo novamente. muito obrigado por qualquer ajuda!

    
por dylan murphy 08.06.2011 / 18:46

7 respostas

6

Eu uso com sucesso um túnel SSH para contornar limites arbitrários de conexão quando tethering. A ideia é a seguinte:

ssh -D 1234 server

inicia o túnel, depois você configura o firefox ou outro software para usar o socks 5 proxy localhost / 1234. Siga as instruções em esta página para instruir o firefox a também usar o proxy para DNS.

O resultado é que o roteador só verá uma conexão criptografada com seu proxy.

Se você está usando o Ubuntu, então você pode configurar o proxy para o Ubuntu , não para o Chrome ou o Firefox. Em seguida, todos os programas, incluindo o Chrome e o Firefox, devem usar esse proxy por padrão.

Abra gnome-network-properties e defina o proxy para host localhost, porta 1234.

    
por 17.06.2011 / 10:32
3

Se você estiver usando o Firefox, pesquise por configurações de "max-connections" em about: config.

Qualquer coisa mais complexa do que isso provavelmente requer controle de tráfego / filtragem de pacotes / firewall - por exemplo, você pode usar o Shorewall para limitar a taxa de conexão: link

    
por 16.06.2011 / 18:08
2

Você pode adicionar uma regra ao firewall netfilter / iptables para fazer isso por você. O Netfilter consulta a tabela nat sobre novas conexões (e a tabela filter por pacote). Você pode limitar as novas conexões usando um único comando iptables.

# iptables --table nat --append --protocol tcp -m multiport \
    --destination-ports 80,443 -m limit ! --limit 10/second --limit-burst 5 \
    --jump DROP

Este comando deve ser executado como root. Ele corresponde a todas as novas tentativas de conexão --table-nat , tcp --protocol tcp às portas 80 (http) e 443 (https) --destination-ports 80,443 , que está acima de ! do limite de 5 tentativas de conexão por segundo --limit 10/second , com uma permissão 5 conexões extras --limit-burst 5 . Em seguida, instrui o netfilter a ignorar completamente esses pacotes --jump DROP .

NB, você precisará executar este comando toda vez que reiniciar seu computador, o que pode ser feito por meio de vários mecanismos. Você pode lançá-lo em um shell script, torná-lo executável e chamá-lo por meio de uma linha de pré-inicialização em /etc/network/interfaces - se você usar esse arquivo para configurar sua rede e se usar uma variante debian.

Um truque rápido e fácil seria adicionar essa linha a um dos scripts de inicialização importantes em /etc/init.d/ .

    
por 21.06.2011 / 02:12
1

Por segmento do Chromium Problema 12066: corresponde ao limite de 15 conexões por host do Firefox , A equipe do Google Chrome acredita que 6 conexões com um servidor são o limite superior correto.

Para alterar o número de conexões acima ou abaixo de 6, será necessário criar o Chrome a partir do código-fonte. Ou passando para o Firefox.

Aqui estão os valores padrão no Firefox (3.5), que podem ser alterados em about:config :

network.http.max-connections 30
network.http.max-connections-per-server 15
network.http.max-persistent-connections-per-proxy 8
network.http.max-persistent-connections-per-server 6
network.http.pipelining false
network.http.pipelining.maxrequests 4
network.http.proxy.pipelining false

A documentação de cada uma das configurações acima pode ser encontrada na Base de Conhecimento da MozillaZine .

    
por 17.06.2011 / 09:35
1

Para uma ferramenta de baixo nível ou ferramenta de linha de comando, tente tc (controle de tráfego). Essa ferramenta é criada para funcionar com a pilha de rede da maioria dos novos kernels. Por isso, deve estar disponível na maioria dos sistemas por padrão, sem necessidade de instalação.

Para o link http e tc

tc
man tc

link
link

Também vale a pena ler link

    
por 21.06.2011 / 14:53
0

O truque é um utilitário que faz isso por você.

Clique aqui para mais informações

Pacotes de gotejamento estão disponíveis para a maioria das distribuições Linux e BSD.

Aqui está um link para informações sobre o Trickle na última versão do Ubuntu, com links de download

Provavelmente está disponível através do Ubuntu Software Center ou do Synaptic Package Manager também.

Aqui está um link para o Fedora

    
por 08.06.2011 / 18:52
0

Eu suspeito que a melhor maneira de fazer isso em todo o sistema é usar um proxy HTTP. Você poderia então configurá-lo como um Proxy Transparente para forçar todas as conexões a usá-lo, mas é mais fácil ( e tem menos limitações) para configurar seus navegadores manualmente.

O principal motivo para fazer isso com um proxy, em vez de com o iptables, é para que ele não ofusque seu navegador. Usando o -j DROP, como sugerido em outra resposta, você está essencialmente descartando a conexão TCP por completo - o que significa que seu navegador provavelmente ficará lá esperando por uma resposta, até que ela expire, então finalmente mostrará a você página carregada, com janelas quebradas, faltando CSS, etc.

Ao usar um proxy, as solicitações pendentes não são descartadas. Elas são apenas enfileiradas até que haja espaço para continuar.

Provavelmente, a configuração mais simples e leve (que encontrei até agora) seria instalar o Tinyproxy e definir os MaxClients valor para o número máximo de conexões de saída desejadas.

Se você quiser usar o squid - talvez porque você goste de um exagero, ou talvez goste de seu cache ou outra fantasia Recursos impressionantes, o único limite de conexão de saída que vejo é em uma base per-peer. Mas isso ainda pode funcionar. Configure dois proxies - um como squid, um como qualquer outra coisa (talvez Tinyproxy, hehe) e configure o Tinyproxy como o único ponto do squid com a configuração max-conn configurada para o seu número máximo de conexões. Em seguida, diga ao squid para encaminhar todas as requisições através desse peer, definindo a opção never_direct.

    
por 23.06.2011 / 10:11