![OpenVPN이 TCP만 사용하도록 만드는 방법은 무엇입니까?](https://rvso.com/image/1598565/OpenVPN%EC%9D%B4%20TCP%EB%A7%8C%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8F%84%EB%A1%9D%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
DDoS 보호를 위한 VPN으로 OVH VPS를 사용합니다. 클라이언트 > 서버 터널에 대해 UDP를 사용하여 테스트하는 동안 공격으로 인해 OVH의 VAC 완화(비활성화할 수 없음)가 트리거되면 서버와 클라이언트 간의 트래픽이 중단된다는 사실을 발견했습니다. OVH의 VAC 시스템이 내 클라이언트의 UDP 트래픽을 공격자로 취급하여 차단했다는 의미입니다. OVH 웹사이트에 다른 OVH 고객이 게시한 게시물 때문에 이것이 문제라는 것을 알고 있습니다.
이를 염두에 두고 터널을 TCP로 전환했습니다. 하지만 이제 클라이언트가 게임에 연결할 때 UDP를 사용하여 실제 게임에 연결하고 있는 것을 볼 수 있습니다. 예상한 대로 서버에서 부하 테스트(시뮬레이션된 DDoS 공격)를 시작하자 게임에서 내 클라이언트의 연결이 끊겼지만 실제 VPN 서버는 연결이 끊겼습니다.
핵심요약: OpenVPN 서버가 게임 연결에 TCP만 사용하도록 해야 하는데 DNS는 괜찮은 것 같습니다. 내 클라이언트의 터널은 TCP로 설정되어 있지만 서버는 UDP를 통해 게임에 연결합니다. 게임 연결에서 서버가 TCP만 사용하도록 하려면 어떻게 해야 합니까?
편집: 전달된 UDP 트래픽을 거부하거나 TCP를 장려하는 iptables 규칙일까요?
답변1
명령줄에서 다음을 시도해 볼 수 있습니다.
openvpn --proto tcp-client client.ovpn
또는 프로필의 경로당 프로토콜을 tcp로 설정하고 (있는 경우) 아래 예에서는 이 있는지 tcp-client
확인 하고 다음 으로 변경합니다.proto tcp-client
remote 1.2.3.4 1194 udp
remote 1.2.3.4 1194 tcp
client
dev tun
proto tcp-client
remote examplevpn.net 443
remote 1.2.3.4 1194 udp
remote 1.2.3.4 443 tcp
auth-user-pass
resolv-retry infinite
nobind
persist-tun
persist-key
persist-remote-ip
cipher AES-256-CBC
tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-DSS-WITH-AES-256-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA
remote-cert-tls server
verify-x509-name us-il name-prefix
key-direction 1
comp-lzo no
verb 3
;ca ca.crt
답변2
귀하의 제목이 귀하의 질문과 일치하지 않습니다. OpenVPN 터널은 이미 TCP를 사용하고 있지만 터널링된 데이터 자체는OpenVPN의 통제 외부심지어는 통제할 수 없는 곳에서도 마찬가지입니다.
게임이 UDP를 사용하도록 작성된 경우~ 할 것이다UDP를 사용하고, 더 중요한 것은게임 서버클라이언트가 UDP를 사용할 것으로 예상합니다. 따라서 VPN 서버를 떠나기 전에 패킷을 TCP로 변환하면 게임 서버는 패킷을 어떻게 처리할지 알 수 없습니다.
일반적으로 유일한 옵션은 UDP를 완전히 차단하는 것입니다. 게임이 TCP를 지원하는 경우대안, 그것을 사용하는 것 외에는 선택의 여지가 없습니다. 게임에 UDP가 필요한 경우 전혀 작동하지 않습니다.