http.request
또는 net.connect
에는 네트워크 인터페이스를 지정하여 연결을 시작할 수있는 옵션이 있습니까?Node.js에서 net 요청을 할 때 네트워크 인터페이스를 지정하는 방법은 무엇입니까?
OS 레벨에서 AFAIK는 주소 수준을 지정하거나 라우팅 테이블에로드 균형을 지정할 수 있습니다. 그러나 제 소프트웨어에서 인터페이스를 선택하는 방법은 그 이상입니다. 코드에서 그렇게 할 수 있는지 알고 싶습니다.
http.request
또는 net.connect
에는 네트워크 인터페이스를 지정하여 연결을 시작할 수있는 옵션이 있습니까?Node.js에서 net 요청을 할 때 네트워크 인터페이스를 지정하는 방법은 무엇입니까?
OS 레벨에서 AFAIK는 주소 수준을 지정하거나 라우팅 테이블에로드 균형을 지정할 수 있습니다. 그러나 제 소프트웨어에서 인터페이스를 선택하는 방법은 그 이상입니다. 코드에서 그렇게 할 수 있는지 알고 싶습니다.
노드이 내장되어 사용할 수 있습니다 사용하고 싶다.
EDIT : 사용자 인터페이스에서 네트워크 인터페이스를 지정할 수 있습니다. 나는 교정했다. 그러나 노드와 함께 사용할 수있는 모듈을 아직 찾지 못했습니다.
기본적으로 네트워크 인터페이스는 OS 라우팅 테이블에 의해 결정됩니다.
Unix 시스템 (OSX 포함)에서이 테이블을 netstat -r
과 함께 나열 할 수 있습니다. 터미널을 열고 명령을 입력하십시오.
laurent ~ $ netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 153 0 en0
127 localhost UCS 0 0 lo0
localhost localhost UH 2 42 lo0
...
Netif
필드는 경로에 사용되는 네트워크 인터페이스를 제공합니다. 이것은 더 저기 serverfault 것입니다
laurent ~ $ route get google.fr
route to: par03s02-in-f23.1e100.net
destination: default
mask: default
gateway: 192.168.1.1
interface: en0
flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 0
,하지만 당신은 route
명령 경로를 변경할 수 있습니다 당신은 또한 route
와 호스트 이름에 도달하는 데 사용되는 인터페이스를 얻을 수 있습니다. 예를 들어,이 의지 경로 트래픽이 X.Y.Z.하는 [0-254]는 eth0를에 X.Y.Z.254에 :
route add -net X.Y.Z.0/24 gw X.Y.Z.254 dev eth0
당신이 루트가 재부팅을 유지하려는 경우, 당신은 /etc/network/interfaces
에 추가 할 수 있습니다. 여러 경로 사이에서로드 균형을 조정하려면 MPLS도 확인해야합니다.
http://nodejs.org/api/net.html#net_net_connect_options_connectionlistener
http://nodejs.org/api/http.html#http_http_request_options_callback
그냥 인터페이스의 IP에 당신이 거라고 설정 localAddress
를 참조하십시오
curl = require('node-curl')
curl('www.google.com', { INTERFACE: 'eth1', RAW: 1 }, function(err) {
console.info(this);
});
답변을 주셔서 감사합니다. 컬은 시작하는 좋은 방법입니다. 그러나 모든 코드를 노드 컬링으로 포팅하는 것은 옵션처럼 보이지 않습니다. 난 원래 net.connect 및 http.request 것들을 유지하고 싶다. – Vicary
나는이 질문을 한 후에 이것이 가장 좋은 방법이라고 생각했다. os.networkInterfaces()로 주소를 그룹화 할 수 있습니다. – Vicary