Huawei E3372s + Linux(Rasbian), 수신 연결 문제

Huawei E3372s + Linux(Rasbian), 수신 연결 문제

저는 Raspberry Pi 2+에서 실행되는 Linux 기반 OS(Rasbian)를 가지고 있으며 다음을 사용하고 있습니다.화웨이 E3372s인터넷 연결을 위한 4G/LTE USB 스틱.

모든 아웃바운드 연결이 제대로 작동하지만(usb_modeswitch-ruling 및 Udev/rules.d를 사용하여 Huawei USB 모드 변경) Raspi로부터 어떤 종류의 인바운드 연결도 수신할 수 없습니다.함수 전달이 작동하지 않습니다.

수신할 수 없음나는 Raspbian 패키지 배포에서 제공하는 도구를 사용하여 로그에서 실시간으로 모든 패킷이나 연결을 추적합니다.

4G ISP를 통해 양방향 트래픽을 허용하는 확장 서비스가 활성화 및 재설정되었음을 확인했으며 ISP는 내 3G/4G 가입에 대해 많은 지식을 갖고 있으며 완벽하게 작동하지만 패킷을 수신할 수 없습니다. 피부.

화웨이 E3372s(다이얼 업을 사용하는 대부분의 오래된 스틱과 달리 wvdial)CDC_ETH시스템용 이더넷과 유사한 장치(이 경우 ETH1)를 생성하고 이 경우 완벽하게 작동하는 드라이버 시스템입니다.

필요한 모든 작업을 완료하기 위해 IPTables를 다시 지우고, 재생성하고, 테스트하고, 수정하고, 다시 지우고 사용했으며, 라우팅을 여러 번 확인, 수정 및 테스트했으며, Huawei USB 스틱을 통한 연결을 방해하는 알려진 차단 시스템이 없음을 확인했습니다. 완전한 기능을 갖춘 서비스가 실행 중인데도 여전히 시스템에 대한 핑을 받을 수 없습니다.

또한 호스트 허용/거부 규칙과 같은 보다 간단하고 간단한 영역도 확인했지만 운이 없었습니다. Huawei가 내부적으로 구성한 모든 설정은 웹 인터페이스를 사용하여 올바르게 설정되므로 APN 이름도 아닙니다.

그러나 저는 가끔 임의의 포럼에서 Huawei CDC_ETH 솔루션이 드라이버로 들어오는 연결을 처리하는 방식에 결함이 있을 수 있다는 사실을 접했습니다.

Debian/Rasbian/Linux 수신 연결 문제가 발생한 경우화웨이 E3372s또는 관련 3G/4G USB 제품을 사용하세요.CDC_ETH그리고 이 문제에 대한 해결책을 찾았습니다

답변1

펌웨어 업데이트는 필요하지 않지만, 찾은 모드 스위치와 아직 찾지 못한 다이얼러는 필요합니다. 다음 구성 파일은 다음에서 가져왔습니다.NVDC 콘텐츠 네트워킹, 가상화 및 데이터 센터 콘텐츠상자에서 바로 사용할 수 있습니다. 각각을 템플릿으로 사용하지 않고 작동이 시작될 때까지 조정하십시오.

/etc/usb_modeswitch.conf

DefaultVendor=0x12d1
DefaultProduct=0x14fe

TargetVendor=  0x12d1
TargetProduct= 0x1506

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

/etc/wvdial.conf

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0
Init3 = AT+CGDCONT=1,"IP","internet.t-mobile.cz"
Stupid Mode = 1
ISDN = 0
Modem Type = Analog Modem
New PPPD = yes
Phone = *99***#
Modem = /dev/gsmmodem
Username = { }
Password = { }
Baud = 9600

용법

  1. /dev/gsmmodem/dev/ttyUSB2모뎀 에서 까지의 링크를 만듭니다 .
  2. 외부 세계에 전화를 겁니다. 이 작업은 매번 수행해야 합니다.

    wvdial >/dev/null 2>&1 &
    
  3. 시스템의 로컬 시작 스크립트 영역에 다음을 추가합니다.

    MODEM_STORAGE="12d1:14fe"
    MODEM_MODEM="12d1:1506"
    
    # 0 = storage, 1= modem
    MODEM_MODE=0
    
    check_modem_mode () {
     echo -n "Checking modem presence... "
    
     lsusb | grep --quiet "$MODEM_STORAGE"
    
     if [ $? -eq 0 ]; then
      MODEM_MODE=0
      echo "OK: modem in mass storage mode"
     else
      lsusb | grep --quiet "$MODEM_MODEM"
      if [ $? -eq 0 ]; then
       MODEM_MODE=1
       echo "OK: modem in modem mode"
      else
       echo "ERROR: modem not found"
       exit 1
      fi
     fi
    }
    
    set_modem_mode () {
     while [ $MODEM_MODE -eq 0 ]
     do
      echo -n "Setting modem mode... "
      usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf     >/dev/null 2>&1
      lsusb | grep --quiet "$MODEM_MODEM"
      if [ $? -eq 0 ]; then
       MODEM_MODE=1
       echo "OK"
      else
       echo "FAILED"
      fi
     done
    }
    

설명하다

내가 설명했듯이이전 게시물에서, GSM 모뎀에는 항상 두 개 이상의 구성 요소가 있습니다. 이 모델에서는 3개의 구성 요소입니다.

  • USB 메모리 스틱과 유사한 저장 영역.
  • 여러 장치를 연결하기 위한 무선 이더넷 어댑터입니다.
  • PPP 다이얼러를 사용하면 무선 서비스 제공업체에서 귀하가 유료 고객임을 인식하고 필요한 경우 초과 요금을 부과할 수 있습니다. PPPoE에는 인증이 필요하므로 이제 유료 고객임을 증명할 수 있으므로 협상된 IP 주소를 사용하여 인터넷에 액세스할 수 있습니다.

섹션 1과 2는 etc/modeswitch.conf구성 파일을 통해 제어됩니다. 12d1말하자면 공급업체의 MAC 주소입니다. 로컬 스크립트를 사용하여 MAC 주소의 나머지 부분을 만듭니다. 12:D1:14:FE, 결국 저장 장치가 되었고 12:D1:15:06결국 모뎀이 되었습니다. 로컬 스크립트 문제를 사용하지 않는 경우usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf

참고: 기본적으로, 즉 모드 스위치가 없는 Linux는 저장 장치만 볼 수 있으므로 OP는 PPP 다이얼러 또는 무선 장치를 보거나 사용할 수 없습니다..


모드 스위치를 이용하여 모뎀을 켠 후,다이얼또는 다양한 대안 중 하나가 외부 세계에 대한 액세스를 제어합니다. 모뎀이 모뎀 모드에 있으면 결국 다음과 유사한 출력이 표시됩니다.

wwan0     Link encap:Ethernet  HWaddr 58:2c:80:13:93:13
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:10.83.249.176  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4265 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6699 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:506706 (494.8 KiB)  TX bytes:600991 (586.9 KiB)

발행시ifconfig

답변2

NAT 문제인 것 같습니다. ISP가 연결을 NAT로 처리하지 않더라도 Huawei는 eth1인터페이스에서 NAT를 사용합니다.

Huawei에는 기본적으로 두 가지 모드가 있습니다.

  • 가오 리안, NAT를 사용하고 이더넷 인터페이스를 제공합니다.
  • 링크가 높지 않음, 여기서 PPP 또는 NDIS는 이동통신사에 연결하는 데 사용됩니다.

다른 펌웨어를 플래시하여 두 모드 사이를 변경하는 방법에 대한 많은 튜토리얼이 있습니다. 하지만 이 과정에서 모뎀이 손상될 수 있으므로 구체적인 링크는 게시하지 않겠습니다.

답변3

제 경우에는 이것이 제가 필요한 usb_modeswitch 구성이라는 것을 알았습니다.

cat /etc/usb_modeswitch.d/huawei_e3372.conf 
# modeswitch config file for the huawei e3372

DefaultVendor=0x12d1
DefaultProduct=0x1f01

TargetVendor=  0x12d1
TargetProduct= 0x14dc

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

모뎀을 실행하고 작동시키려면 이 명령을 사용하십시오.

sudo usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.d/huawei_e3372.conf

답변4

LTE ISP 또는 Huawei가 NAT를 수행하는 경우에도 해결 방법이 있습니다 ssh -R. 인터넷에 서버가 있는 경우 SSH를 통해 포트를 전달할 수 있습니다(예: Tomcat).

ssh -R 4080:localhost:8080 my.cloud.server

다음과 같이 파이에 액세스합니다.

http://my.cloud.server:4080

OpenVPN도 작동해야 합니다.

관련 정보