AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 751170
Accepted
bao7uo
bao7uo
Asked: 2016-01-23 14:53:15 +0800 CST2016-01-23 14:53:15 +0800 CST 2016-01-23 14:53:15 +0800 CST

Apache (Linux) httpd escuta no endereço IPv6 de link local

  • 772

Eu gostaria que o Apache escutasse no endereço ipv6 do link local em uma interface específica. Eu tenho a seguinte linha no meu httpd.conf:

Listen [fe80::a00:16ff:fe89:420f]:80

Que é baseado na documentação do Apache aqui: https://httpd.apache.org/docs/2.4/bind.html "endereços IPv6 devem ser colocados entre colchetes"

Os detalhes do meu sistema operacional/versão do Apache são os seguintes:

$ httpd -v
Server version: Apache/2.4.18 (Unix)
Server built:   Dec 14 2015 08:05:54
$ uname -rv
4.3.3-3-ARCH #1 SMP PREEMPT Wed Jan 20 08:12:23 CET 2016

O resultado mostrado usando journalctl -eé:

(22) Argumento inválido: AH00072: make_sock: não foi possível vincular ao endereço [fe80.....

O IPv6 está funcionando porque tenho escuta sshd e dnsmasq. Tentei anexar dois sufixos de ID de escopo diferentes ao endereço. Você pode usar o id da interface 3ou o nome net1como um scopeid em ambos ping6e sshd.

$ ip addr | grep -Po "^\d: \S+"
1: lo:
2: net0:
3: net1:

$ for scopeid in 3 net1; do ping6 -c 1 fe80::a00:16ff:fe89:420f%$scopeid; done | grep loss
1 packets transmitted, 1 received, 0% packet loss, time 0ms
1 packets transmitted, 1 received, 0% packet loss, time 0ms

sshd_config funciona com:ListenAddress fe80::a00:16ff:fe89:420f%3

ou:ListenAddress fe80::a00:16ff:fe89:420f%net1

Então, com tudo isso em mente, tentei o seguinte em httpd.conf

Ouça [fe80::a00:16ff:fe89:420f%3]:80

eListen [fe80::a00:16ff:fe89:420f%net1]:80

A adição de um dos scopeid fez com que o Apache falhasse no início do processo de inicialização. journalctl -emostra um erro de sintaxe ao analisar httpd.conf da seguinte forma:

AH00526: Erro de sintaxe na linha 52 de /etc/httpd/conf/httpd.conf:
Scope id não é suportado

O Apache escuta no localhost ipv6 se eu fizer issoListen [::1]:80

Eu esperaria Listen 80que o Apache se ligasse tanto ao ipv4 quanto ao ipv6, mas isso não acontece. Ele se liga apenas a endereços ipv6 - o netstat mostra:

tcp6  0  0    :::80    :::*     LISTEN

Nesse caso, o Apache aceita solicitações no endereço link-local em net1. Eu tenho que especificar 0.0.0.0:80ou um endereço ipv4 específico para que ele escute no ipv4.

Então, como faço o Apache ligar-se a um endereço local de link específico (não todos eles - quero evitar ouvir em outras interfaces) ou simplesmente não é possível para o Apache ouvir em um endereço ipv6 de link local?

apache-2.4
  • 1 1 respostas
  • 3588 Views

1 respostas

  • Voted
  1. Best Answer
    bao7uo
    2016-01-24T09:17:28+08:002016-01-24T09:17:28+08:00

    Depois de passar algum tempo nisso, parece que a documentação do Apache pode ser enganosa, embora eu possa ter perdido alguma coisa. Ele diz que os endereços IPv6 devem ser colocados entre colchetes. Isso é verdade para endereços sem link local. Mas agora descobri que os endereços locais de link podem ser usados ​​e devem incluir um ID de escopo, mas sem os colchetes. Veja abaixo:

    Documentação do Apache:

    $ wget -q -O- https://httpd.apache.org/docs/2.4/bind.html | grep -Pao "(?<=p.)IPv6[ a-z]+"
    IPv6 addresses must be enclosed in square brackets
    

    Minha configuração:

    $ grep -R ^Listen /etc/httpd/conf/
    /etc/httpd/conf/httpd.conf:Listen fe80::a00:16ff:fe89:420f%3:80
    /etc/httpd/conf/extra/httpd-ssl.conf:Listen fe80::a00:16ff:fe89:420f%net1:443
    

    Como você pode ver, usei o ID da interface para o ID do escopo com a porta 80 e o nome da interface para o ID do escopo com a porta 443. Isso é apenas para mostrar que o ID ou nome da interface pode ser usado com sucesso como o ID do escopo.

    Resultados:

    $ sudo netstat -pant | grep -i httpd
    tcp6   0    0 fe80::a00:16ff:fe89::80 :::*  LISTEN   709/httpd
    tcp6   0    0 fe80::a00:16ff:fe89:443 :::*  LISTEN   709/httpd
    
    • 6

relate perguntas

  • Como redireciono subdomínios para uma porta diferente no mesmo servidor?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve