Ввод клиентского компьютера в домен прошел без ошибок. На сервере клиентский компьютер добавлен. В «Управление доменной политикой безопасности» при просмотре свойств клиентского компьютера появляется ошибка: «Ошибка RPC: сетевая ошибка(99): невозможно назначить запрошенный адрес». Прошу подсказать как её исправить.
Если сеть настроена через /etc/hosts , то укажите длинное и короткое имя клиента на сервере.
Спасибо. Помогло.
Осталась ещё одна задача: При попытке входа на клиентский компьютер под доменной учетной записью пользователя появляется «Вход неудачен».
Логин доменного пользователя в списке на вход имеется, пароль соответствует парольной политике. Как можно решить эту задачу?
Спасибо. Помогло.
Осталась ещё одна задача: При попытке входа на клиентский компьютер под доменной учетной записью пользователя появляется «Вход неудачен».
Логин доменного пользователя в списке на вход имеется, пароль соответствует парольной политике. Как можно решить эту задачу?
посмотреть логи авторизации надо
/var/log/auth
Доступ к компьютеру запрещён.
Не могу разрешить его.
Нашёл. Разрешение на доступ дается на контроллере домена в свойствах пользователя «Привилегии домена». Надо добавить компьютер и или группу компьютеров к которым разрешается доступ.
Разрешение на доступ дается на контроллере домена в свойствах пользователя «Привилегии домена». Надо добавить компьютер и или группу компьютеров к которым разрешается доступ.
Я так же делаю, но пишет, что «Вход неудачен».
А если добавить этого же доменного пользователя на сервер, то авторизоваться получается.
В чем может быть проблема?
Я так же делаю, но пишет, что «Вход неудачен».
А если добавить этого же доменного пользователя на сервер, то авторизоваться получается.
В чем может быть проблема?
Если интересно, то у меня проблема была в обратной зоне: одному и тому же ip-адресу соответствовало несколько имен, и dns выдавал первое имя, соответсвующее указанному ip-адресу, а оно не соответствовало тому, которое указывалось с командой ald-client join.
Выяснилась проблема после просмотра /var/log/auth.log.
После чистки обратной зоны всё заработало как часы.
Последнее редактирование: 14.06.2020
Yesterday, I created a python script called sniffer_ip_header_decode.py, but I had the following error:
Traceback (most recent call last):
File "sniffer_ip_header_decode.py", line 51, in <module>
sniffer.bind((host, 0))
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address
Here is the code:
import socket
import os
import struct
from ctypes import *
#host to listen on
host = "192.168.0.187"
#our IP header
class IP(Structure):
fields = [
("ihl", c_ubyte, 4),
("version", c_ubyte, 4),
("tos", c_ubyte),
("len", c_ushort),
("id", c_ushort),
("offset", c_ushort),
("ttl", c_ubyte),
("protocol_sum", c_ubyte),
("sum", c_ushort),
("src", c_ulong),
("dst", c_ulong),
]
def __new__(self, socket_buffer=None):
return self.from_buffer_copy(socket_buffer)
def __init__(self, socket_buffer=None):
#map protocol constants to theyr names
self.protocol_map = {1:"ICMP", 6:"TCP", 17:"UDP"}
#Human readable IP addresses
self.src_address = socket.inet_ntoa(struct.pack("<L",self.src))
self.dst_address = socket.inet_ntoa(struct.pack("<L",self.dst))
#Human readable protocol
try:
self.protocol = self.protocol_map[seld.protocol_num]
except:
self.protocol = str(self.protocol_num)
#This should look familiar from the previous example
if os.name == "nt":
socket_protocol = socket.IPPROTO_IP
else:
socket_protocol = socket.IPPROTO_ICMP
sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol)
sniffer.bind((host, 0))
sniffer.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
if os.name == "nt":
sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
try:
while True:
#read in a packet
raw_buffer = sniffer.recvfrom(65565)[0]
#create an IP header from the first 20 bytes of the buffer
ip_header = IP(raw_buffer[0:20])
#print out the protocol that was detected and the host
print "Protocol: %s %s -> %s" % (ip_header.protocol, ip_header.src_address, ip_header.dst_address)
#Handle CTRL - C
except KeyboardInterrupt:
#if we're using windows. turn off promiscuous mode
if os.name == "nt":
sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
Yesterday, I created a python script called sniffer_ip_header_decode.py, but I had the following error:
Traceback (most recent call last):
File "sniffer_ip_header_decode.py", line 51, in <module>
sniffer.bind((host, 0))
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address
Here is the code:
import socket
import os
import struct
from ctypes import *
#host to listen on
host = "192.168.0.187"
#our IP header
class IP(Structure):
fields = [
("ihl", c_ubyte, 4),
("version", c_ubyte, 4),
("tos", c_ubyte),
("len", c_ushort),
("id", c_ushort),
("offset", c_ushort),
("ttl", c_ubyte),
("protocol_sum", c_ubyte),
("sum", c_ushort),
("src", c_ulong),
("dst", c_ulong),
]
def __new__(self, socket_buffer=None):
return self.from_buffer_copy(socket_buffer)
def __init__(self, socket_buffer=None):
#map protocol constants to theyr names
self.protocol_map = {1:"ICMP", 6:"TCP", 17:"UDP"}
#Human readable IP addresses
self.src_address = socket.inet_ntoa(struct.pack("<L",self.src))
self.dst_address = socket.inet_ntoa(struct.pack("<L",self.dst))
#Human readable protocol
try:
self.protocol = self.protocol_map[seld.protocol_num]
except:
self.protocol = str(self.protocol_num)
#This should look familiar from the previous example
if os.name == "nt":
socket_protocol = socket.IPPROTO_IP
else:
socket_protocol = socket.IPPROTO_ICMP
sniffer = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket_protocol)
sniffer.bind((host, 0))
sniffer.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
if os.name == "nt":
sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
try:
while True:
#read in a packet
raw_buffer = sniffer.recvfrom(65565)[0]
#create an IP header from the first 20 bytes of the buffer
ip_header = IP(raw_buffer[0:20])
#print out the protocol that was detected and the host
print "Protocol: %s %s -> %s" % (ip_header.protocol, ip_header.src_address, ip_header.dst_address)
#Handle CTRL - C
except KeyboardInterrupt:
#if we're using windows. turn off promiscuous mode
if os.name == "nt":
sniffer.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
Я запускаю Ubuntu Hardy 8.04 и nginx 0.7.65, и когда я пытаюсь запустить свой сервер nginx:
$ sudo /etc/init.d/nginx start
Я получаю следующую ошибку:
Starting nginx: [emerg]: bind() to IP failed (99: Cannot assign requested address)
где «IP» является заполнителем для моего IP-адреса. Кто-нибудь знает, почему эта ошибка может произойти? Это работает на EC2.
Мой файл nginx.conf выглядит так:
user www-data www-data;
worker_processes 4;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log /usr/local/nginx/logs/access.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 3;
gzip on;
gzip_comp_level 2;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml
application/xml+rss text/javascript;
include /usr/local/nginx/sites-enabled/*;
}
и мой /usr/local/nginx/sites -enabled/example.com выглядит так:
server {
listen IP:80;
server_name example.com;
rewrite ^/(.*) https://example.com/$1 permanent;
}
server {
listen IP:443 default ssl;
ssl on;
ssl_certificate /etc/ssl/certs/myssl.crt;
ssl_certificate_key /etc/ssl/private/myssl.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP;
server_name example.com;
access_log /home/example/example.com/log/access.log;
error_log /home/example/example.com/log/error.log;
}
Ответ 1
С Amazon EC2 и эластичными IP-адресами сервер фактически не знает своего IP-адреса, как и для большинства других серверов.
Итак, вы должны сказать своему Linux, чтобы позволить процессам связываться с нелокальным адресом. Просто добавьте следующую строку в файл /etc/sysctl.conf:
# allow processes to bind to the non-local address
# (necessary for apache/nginx in Amazon EC2)
net.ipv4.ip_nonlocal_bind = 1
а затем перезагрузите файл sysctl.conf:
$ sysctl -p /etc/sysctl.conf
что будет нормально при перезагрузке.
Ответ 2
Чтобы избежать жесткого кодирования IP-адреса в конфигурации, сделайте следующее:
listen *:80;
listen [::]:80;
Ответ 3
Как упомянуто выше в kirpit, вы хотите, чтобы linux-процессы связывались с локальным IP-адресом:
nano /etc/sysctl.conf
# allow processes to bind to the non-local address
net.ipv4.ip_nonlocal_bind = 1
sysctl -p /etc/sysctl.conf
Затем вы хотите добавить частный IP-адрес, который связан с вашим эластичным ip, и добавить его в конфигурацию ваших сайтов:
nano /etc/nginx/sites-available/example.com
Перезагрузка nginx:
service nginx reload
Все сделано!
Ответ 4
Может существовать оставшийся процесс/программа, которая использует/прослушивает порт 80.
Вы можете проверить, что с помощью netstat -lp.
Убейте этот процесс и запустите nginx.
Ответ 5
С Amazon EC2 и эластичными IP-адресами сервер фактически не знает своего IP-адреса, как и для большинства других серверов. Таким образом, в файлах виртуального хоста apache по крайней мере вы ставите *: 80, а не на свой эластичный ip: 80
Затем он работает правильно. Итак, теоретически, делать *: 80 для nginx должно работать одинаково, но когда вы это делаете, вы получаете [появление]: bind() до 0.0.0.0:80 не удалось (98: адрес уже используется). Пока не найдено ни одного решения.
.
Ответ 6
Для людей, которые могут иметь дело с этим в будущем, я просто искал свой частный IP-адрес в экземпляре AWS и привязался к этому. Я подтвердил, что nginx смог публично выслушать и выполнить мою переписывание после этого. Я не мог сделать *: PORT, поскольку у меня был внутренний сервер, на который я проксировал.
Ответ 7
Если вы используете Network Manager, вам нужно подождать, чтобы поднять сетевой интерфейс перед запуском службы:
systemctl включить NetworkManager-wait-online.service
Ответ 8
Для Amazon EC2 и эластичных IP-адресов sysctl.conf не будет работать, поскольку nginx еще не прослушивает eth0.
Итак, вам нужно listen *;
Я использую Ubuntu Hardy 8.04 и nginx 0.7.65, и когда я пытаюсь запустить свой сервер nginx:
$ sudo /etc/init.d/nginx start
Я получаю следующее сообщение об ошибке:
Starting nginx: [emerg]: bind() to IP failed (99: Cannot assign requested address)
где «IP» — это мой IP-адрес. Кто-нибудь знает, почему может происходить эта ошибка? Это работает на EC2.
Мой файл nginx.conf выглядит так:
user www-data www-data;
worker_processes 4;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log /usr/local/nginx/logs/access.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 3;
gzip on;
gzip_comp_level 2;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml
application/xml+rss text/javascript;
include /usr/local/nginx/sites-enabled/*;
}
и мой /usr/local/nginx/sites-enabled/example.com выглядит так:
server {
listen IP:80;
server_name example.com;
rewrite ^/(.*) https://example.com/$1 permanent;
}
server {
listen IP:443 default ssl;
ssl on;
ssl_certificate /etc/ssl/certs/myssl.crt;
ssl_certificate_key /etc/ssl/private/myssl.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP;
server_name example.com;
access_log /home/example/example.com/log/access.log;
error_log /home/example/example.com/log/error.log;
}
Настраивать:
У меня есть виртуальная машина, и на виртуальной машине работают три контейнера (прокси-сервер nginx, очень минималистичное приложение для фляг и Redis). Flask должен работать на порту 5000, а Redis — на 6379.
Каждый из этих контейнеров работает нормально как отдельный сервис, но также доступен через docker compose как услуга.
В приложении flask моя цель — подключиться к Redis и запросить некоторые ключи.
Контейнер nginx предоставляет порт 80, порт flask 5000 и порт redis 6379.
В приложении фляги у меня есть функция, которая пытается создать клиент Redis.
db = redis.Redis(host='localhost', port=6379, decode_responses=True)
Запустив приложение flask, я получаю сообщение об ошибке, что порт не может быть использован.
redis.exceptions.ConnectionError: Error 99 connecting to localhost:6379. Cannot assign requested address.
Я потерял ясность, что может быть причиной этой проблемы, и любые идеи будут оценены.
Перейти к ответу
Данный вопрос помечен как решенный
Ответы
3
In the flask app I have a function that tries to create a redis client
db = redis.Redis(host=’localhost’, port=6379, decode_responses=True)
Когда ваш процесс фляги запускается в контейнере, localhost относится к сетевому интерфейсу самого контейнера. Он не разрешается в сетевой интерфейс вашего хоста докеров.
Поэтому вам нужно заменить localhost на IP-адрес контейнера, на котором запущен Redis.
В контексте файла docker-compose.yml это легко сделать, поскольку docker-compose заставит имена служб разрешаться в правильный IP-адрес контейнера:
version: "3"
services:
my_flask_service:
image: ...
my_redis_service:
image: ...
Затем в вашем приложении фляги используйте:
db = redis.Redis(host='my_redis_service', port=6379, decode_responses=True)
У меня была такая же проблема, за исключением того, что служба, к которой я хотел, чтобы мой контейнер имел доступ, была удаленной и отображалась через ssh-туннель на мой хост Docker. Другими словами, не было сервиса docker-compose, который мог бы найти мой код. Я решил проблему, явно указав redis искать мой локальный хост в виде строки:
pyredis.Redis(host='docker.for.mac.localhost', port=6379)
Любой, кто использует только докер для запуска контейнера,
вы можете добавить —network=host в команду, например docker run —network=host, чтобы докер использовал сеть хоста во время работы контейнера.
Вы также можете использовать хост-сеть для сервиса swarm, передав —network host команде docker service create.
Убедитесь, что вы не публикуете порт при этом. лайк -p 80:8000
Я не уверен, поддерживает ли Docker compose это.
Н.Б. это поддерживается только в Linux.