액세스 권한에 의해 금지된 방식으로 소켓에 액세스하려고 시도했습니다.
HostGator에 대한 웹사이트와 SQL Server 2008 R2를 실행하는 전용 서버가 있습니다.제가 사용하는 연결 문자열은 전용 서버의 IP 주소를 가리키는 X.X.X,1433입니다.저는 가정용 PC에서 SSMS를 사용하고 SQL Server에 로그인할 수 있도록 서버에 방화벽 설정을 했습니다.
그렇게 한 후 호스트 Gator host-site에서 SQL에 연결하면 잘 될 것이라는 생각이 들었습니다.다음 오류가 발생합니다.
SQL Server에 대한 연결을 설정하는 동안 네트워크 관련 오류 또는 인스턴스별 오류가 발생했습니다.서버를 찾을 수 없거나 액세스할 수 없습니다.인스턴스 이름이 정확하고 원격 연결을 허용하도록 SQL Server가 구성되어 있는지 확인합니다.(제공자: TCP 공급자, 오류: 0 - 액세스 권한에서 금지된 방식으로 소켓에 액세스하려고 시도했습니다.)
제가 이 오류를 찾아보니 많은 설명이 있었지만, 제 상황을 다루는 설명은 없었습니다.제 서버는 Windows 2008을 실행하고 있으며 IIS는 7.5입니다.HostGator 기술 지원팀은 고객의 요구에 따라 문제가 발생하지 않을 것이라고 확신했습니다.]
내 방화벽은 SQL Server Browser 서비스를 위한 TCP 포트 1433과 UDP 포트 1434를 허용합니다.
저는 전용 서버를 가지고 있기 때문에 호스팅 회사에서 이 질문을 할 사람이 없습니다.
Windows용 도커와 Hyper-V에 자체 용도로 포트가 예약되어 있는 것과 비슷한 문제가 있었습니다. 제 경우에는 포트였습니다.3001
접근할 수 없었습니다.
- 포트가 다른 프로세스에서 사용되지 않았습니다.
netstat -ano | findstr 3001
Administrator Powershell 프롬프트에 아무것도 표시되지 않았습니다. - ,
netsh interface ipv4 show excludedportrange protocol=tcp
포트가 제외 범위 중 하나에 있음을 나타냅니다.
Docker for Windows 문제 #3171(포트를 바인딩할 수 없음)에 설명된 솔루션을 따를 수 있었습니다. Windows 및 Hyper-V용 도커(중요한 포트 범위 제외):
Hyper-V 사용 안 함:
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
필요한 재시작 후 Hyper-V가 다시 예약하지 않도록 원하는 포트를 예약합니다.
netsh int ipv4 add excludedportrange protocol=tcp startport=3001 numberofports=1
Hyper-V 다시 활성화:
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
이 후, 도커 컨테이너를 시작할 수 있었습니다.
.Restart-Service hns
는 Hyper-V가 사용하는 포트를 변경할 수 있습니다.필요한 포트를 해제할 수도 있습니다.
다음 링크별:
복제 서비스가 다른 사용자가 사용하는 포트를 사용하려고 할 때 또는 오작동 NIC에 의해 이 증상이 발생할 수 있습니다.다음 단계를 시도해 보십시오.
- 윈도우즈 방화벽 서비스를 다시 시작합니다.
- 문제가 있는 시스템을 재부팅합니다.
- "TCP/IP 스택"을 다시 시작합니다.CMD를 관리자로 실행하고 "netshintip resetlog.txt"를 입력하여 TCP/IP를 재설정합니다.
- 바이러스 백신을 일시적으로 사용하지 않도록 설정합니다.
당연히 이 오류는 다른 프로세스가 원하는 포트에서 수신 중일 때 발생할 수 있습니다.이는 오늘 Apache 웹 서버의 인스턴스를 시작하고 기본 포트(80)에서 수신하고 IIS 7이 이미 실행 중이라는 것을 잊어버리고 해당 포트에서 수신하는 경우에 발생했습니다.이는 SYSTEM(PID 4)이 포트 80을 사용하고 있다는 점에서 잘 설명되어 있습니다. 이는 무엇입니까?이 기사는 Windows의 포트 80에서 http.sys가 수신하지 못하도록 하는 것을 가리키며, 이는 명령 프롬프트를 높이고 호스트 파일을 한 줄로 편집하여 해결하는 매우 간단한 방법을 설명합니다.
내 윈도우 방화벽이 포트 8080을 차단하고 있어서 5000으로 변경했는데 작동했습니다!
https://stackoverflow.com/a/33859341/446250, 에 따르면 이더넷 어댑터에 인터넷 연결 공유를 활성화한 것이 이 문제의 원인이 되었습니다.공유를 비활성화하면 문제가 해결되었습니다.
나의 상황과 해결책:HyperV 이더넷 어댑터를 생성하고 활성화했습니다.어떤 이유에서인지 제 메인 윈도우 컴퓨터는 '하드웨어' 어댑터 대신 '가상' 이더넷 어댑터를 사용하고 있었습니다.
가상 이더넷을 사용하지 않도록 설정하고 네트워크 공용/개인 정보 설정을 변경하기 위한 네트워크 설정이 표시되었습니다.
SSMS를 사용하여 호스트게이터의 SQL 서버에 원격으로 액세스해야 하는 경우 호스트게이터에 IP를 화이트리스트로 작성해야 합니다.화이트리스트에 있는 IP의 포트를 여는 데 보통 1시간이 걸립니다.
이 오류가 발생하지만 약간 다른 원인이 있는 경우 다음을 수행하여 문제를 해결할 수 있습니다.마우스 오른쪽 단추를 누른 후 [관리자로 실행]을 선택하여 텍스트 편집기를 엽니다.C:\Program Files\pgAdmin 4\v4\web\pgAdmin4.py 을 열고 다른 것 없이 코드 한 줄을 추가합니다.출력이 확 달라져서 도움이 될 것입니다.시스템 트레이 > pgAdmin > View Log에서 오류를 확인할 수 있습니다.
import traceback # <--- add this line too.
try:
app.run(
host=config.DEFAULT_SERVER,
port=config.EFFECTIVE_SERVER_PORT,
use_reloader=(
(not app.PGADMIN_RUNTIME) and app.debug and
os.environ.get("WERKZEUG_RUN_MAIN") is not None
),
threaded=config.THREADED_MODE
)
except IOError:
#app.logger.error("Error starting the app server: %s", sys.exc_info())
app.logger.error("Error starting the app server: %s", traceback.format_exc()) # <--- add this line!
이 대신:
ERROR flask.app: Error starting the app server: (<class 'OSError'>, OSError(10013, 'An attempt was made to access a socket in a way forbidden by its access permissions', None, 10013, None),
다음과 같은 결과를 얻을 수 있습니다.
2021-03-01 11:38:33,817: ERROR flask.app: Error starting the app server: (<class 'OSError'>, OSError(10013, 'An attempt was made to access a socket in a way forbidden by its access permissions', None, 10013, None), <traceback object at 0x00000279EF74A3C0>)
Traceback (most recent call last):
File "C:/Program Files/pgAdmin 4/v4/web/pgAdmin4.py", line 210, in main
app.run(
File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\flask\app.py", line 943, in run
run_simple(host, port, self, **options)
File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 1052, in run_simple
inner()
File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 996, in inner
srv = make_server(
File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 847, in make_server
return ThreadedWSGIServer(
File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 740, in __init__
HTTPServer.__init__(self, server_address, handler)
File "C:/Program Files/pgAdmin 4/v4/venv/Lib\socketserver.py", line 452, in __init__
self.server_bind()
File "C:/Program Files/pgAdmin 4/v4/venv/Lib\http\server.py", line 138, in server_bind
socketserver.TCPServer.server_bind(self)
File "C:/Program Files/pgAdmin 4/v4/venv/Lib\socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
방화벽에서 루프백 주소 필터링을 해제하여 로컬 Analysis Services 인스턴스에서 동일한 오류 메시지를 해결할 수 있었습니다.
아무것도 안 먹혔어요.그렙은 범인 청취자를 찾을 수 없었습니다.TCP/IP 또는 방화벽을 재설정해도 아무 것도 작동하지 않았습니다.다음 명령으로 해결했습니다.
net stop http
언급URL : https://stackoverflow.com/questions/15619921/an-attempt-was-made-to-access-a-socket-in-a-way-forbidden-by-its-access-permissi
'source' 카테고리의 다른 글
구독 시 최종 관찰 가능 (0) | 2023.10.23 |
---|---|
PoolableConnectionFactory를 만들 수 없습니다(Io 예외:네트워크 어댑터가 연결을 설정할 수 없음) (0) | 2023.10.23 |
Linux 정적 라이브러리에서 기호 제한 (0) | 2023.10.23 |
DB 업데이트 후 수동으로 최대 절전 모드 2단계 캐시 지우기 (0) | 2023.10.23 |
C 함수의 인수와 C 함수의 오버로드에 대한 기본값 (0) | 2023.10.23 |