반응형

OpenVPN의 속도를 최대로 높이는 방법을 정리해보겠습니다.


🔹 OpenVPN 속도를 빠르게 하는 주요 설정

아래 방법들을 조합하면 속도를 최대한 끌어올릴 수 있습니다.

✅ 1. 암호화 & 인증 방식 제거 또는 약화

1-1. 암호화 없음 (No Encryption, cipher none)

  • 암호화가 필요 없다면 암호화를 완전히 비활성화하면 속도가 크게 향상됨.
  • 설정 방법:
    cipher none
    auth none
    
  • cipher none과 auth none을 설정하면 CPU 부하가 거의 없어지므로 전송 속도가 극대화됨.

1-2. AES-128-GCM 사용 (경량 암호화)

  • 암호화를 완전히 끄는 것이 어렵다면, 가장 가벼운 알고리즘인 AES-128-GCM을 사용.
  • 설정 방법:
    cipher AES-128-GCM
    
  • AES-256-CBC보다 가벼우며, 대부분의 CPU에서 AES-NI 하드웨어 가속 지원.

✅ 2. TCP 대신 UDP 사용

  • OpenVPN은 기본적으로 UDP가 속도가 빠름.
  • 설정 파일에서 proto tcp를 proto udp로 변경:
    proto udp
    
  • TCP는 패킷 손실 시 재전송(overhead)이 많아 속도가 느려짐, UDP가 훨씬 빠름.

✅ 3. 압축 비활성화 (comp-lzo no)

  • OpenVPN은 기본적으로 comp-lzo 압축을 지원하지만, 압축 과정에서 CPU 리소스를 많이 사용하여 속도가 떨어짐.
  • 설정 파일에서 comp-lzo를 비활성화:
    comp-lzo no
    

✅ 4. OpenVPN 프로세스의 MTU 최적화

  • 패킷 크기를 조정하면 속도 향상 가능.
  • 기본적으로 OpenVPN은 작은 패킷을 여러 개 보내므로 속도가 느려질 수 있음.
  • 아래 설정을 적용하면 MTU 크기를 최대로 증가하여 속도를 높일 수 있음:
    tun-mtu 1500
    mssfix 1450
    fragment 0
    
  • 추가로 적용 가능한 설정:
    sndbuf 524288
    rcvbuf 524288
    push "sndbuf 524288"
    push "rcvbuf 524288"
    
    • 버퍼 크기를 증가시켜 네트워크 전송 속도 향상.

✅ 5. OpenVPN 멀티스레드 사용 (fast-io)

  • 기본적으로 OpenVPN은 단일 스레드로 실행되므로, CPU를 제대로 활용하지 못함.
  • fast-io 옵션을 활성화하여 멀티스레드 성능을 향상:
    fast-io
    
  • 특히 다중 코어 CPU 환경에서 속도가 크게 향상됨.

✅ 6. TCP 패킷 큐 및 큐 길이 최적화

  • 네트워크의 패킷 전송을 최적화하려면 다음 옵션 추가:
    txqueuelen 10000
    
  • 네트워크 버퍼 크기를 증가시켜 패킷 손실을 줄이고 성능을 향상.

✅ 7. 서버와 클라이언트의 네트워크 성능 최적화

  • 서버 측에서:
  • sysctl -w net.core.rmem_max=2097152 sysctl -w net.core.wmem_max=2097152 sysctl -w net.ipv4.tcp_rmem="4096 87380 2097152" sysctl -w net.ipv4.tcp_wmem="4096 87380 2097152"
  • 클라이언트 측에서도 동일한 설정 적용.

🔹 추가적인 방법

✅ 8. WireGuard로 변경 (극단적인 성능 차이)

  • OpenVPN을 아무리 최적화해도 WireGuard가 훨씬 빠름.
  • OpenVPN은 단일 스레드 기반이고 암호화 오버헤드가 많아 성능이 떨어짐.
  • WireGuard는 커널 네트워크 스택을 사용하여 OpenVPN보다 3~10배 빠름.
  • 속도가 가장 중요하다면 WireGuard로 마이그레이션하는 것이 최선.

💡 결론: OpenVPN 속도를 높이는 최적 설정

아래와 같이 OpenVPN 서버/클라이언트 설정을 적용하면 최대 속도를 얻을 수 있음.

# OpenVPN 설정 파일 수정
proto udp
cipher none
auth none
comp-lzo no
tun-mtu 1500
mssfix 1450
fragment 0
sndbuf 524288
rcvbuf 524288
push "sndbuf 524288"
push "rcvbuf 524288"
fast-io
txqueuelen 10000

암호화 제거 (보안 X) → 속도 극대화
UDP 사용 → TCP보다 빠름
MTU 최적화 → 패킷 크기 최적화
압축 비활성화 → CPU 오버헤드 감소
버퍼 크기 증가 → 데이터 전송 속도 증가

이 설정을 적용하면 OpenVPN 속도를 최대한 높일 수 있음.
하지만 더 빠른 속도가 필요하면 WireGuard로 교체하는 것이 가장 좋은 선택!

반응형
블로그 이미지

우물 밖 개구리.

우물 밖 개구리의 블로그입니다.

,