집에 라즈베리 파이 3B(라즈베리 파이 3B Arm 아키텍처 32비트)가 있는데, .NET Core 프로그램이 크로스 플랫폼일 수 있어서 집에서 먼지를 먹고 있어서 라즈베리 파이에 배포할 웹사이트를 만들려고 합니다. 가정용 광대역은 공인 IP 주소를 가지고 있지만, 라우터를 재시작할 때마다 IP 주소가 바뀌고, ASUS 라우터의 무료 DDNS는 사용하기 쉽지 않습니다(가정 IP가 변경되었고 도메인 이름 해상도가 제때 적용되지 않았습니다). 집에는 DELL 데스크탑과 DELL EMC 서버가 있으니, ASP.NET Core로 DDNS 서비스와 Wake-on-the-Internet 도구를 작성할 준비를 하세요.
DDNS를 사용하면집에서 인터넷 IP 주소를 제때 받으세요, 네트워크 깨기 기능을 사용할 수 있습니다내 DELL 데스크탑 컴퓨터를 깨워집에서 정보를 조회하기에 편리합니다.
Core 6 ASP.NET 작성된 사이트는 라즈베리 파이에 배포됩니다3개월 넘게 안정적으로 작동하고 있습니다, 아무 문제 없이
AspNetCore 런타임을 설치하세요
먼저, 라즈베리 파이는 라즈베리 파이 OS 시스템과 함께 설치되어야 하며, 튜토리얼은 다음과 같습니다:
그 다음 Raspberry Pi 위에 AspNetCore 런타임을 설치하고, SSH로 Raspberry Pi 호스트에 로그인한 뒤 사용하세요스도 -I루트로 전환하고 다음 명령어로 /usr/dotnet 폴더를 생성하세요:
aspnetcore-runtime-6.0.1-linux-arm.tar.gz 다운로드하고 다음 명령어로 압축을 풀어보세요:
소프트 링크를 생성하려면 명령어는 다음과 같습니다:
이 시점에서 Core 웹사이트 ASP.NET 요구하는 실행 환경이 설치되고, 아래 그림과 같이 설치된 런타임을 확인합니다:
DDNS 동적 도메인 네임 서비스
DNSPod 인터페이스를 호출하여 DDNS 동적 도메인 이름 서비스 구현, 인터페이스 문서:하이퍼링크 로그인이 보입니다.
VS 2022를 사용하여 Core 6 ASP.NET 새로운 MVC 프로젝트를 생성하고, 호출 인터페이스에 필요한 매개변수를 설정하기 위한 새로운 DNSPodOptions.cs 파일을 생성하세요. 다음과 같습니다:
appsettings.json 다음 구성을 추가하세요:
Program.cs 파일을 수정하여 설정 정보를 DNSPodOptions 클래스에 매핑하면, 코드는 다음과 같습니다:
새 DDNSWorker.cs 파일을 만들고, 백그라운드 서비스를 만들고, IP 주소를 1분마다 한 번 얻고, IP 주소가 변경되면 DNSPod 인터페이스를 호출해 도메인 이름 해상도를 업데이트합니다. (참고:1시간 이내에 변경 없이 5건 이상의 기록 수정 요청이 제출되면, 기록은 시스템에 의해 1시간 동안 잠기고 다시 수정할 수 없습니다。 예를 들어, 원래 레코드 값은 이미 1.1.1.1이며, 새 요청은 1.1.1.1로 변경해야 합니다. )
코드는 다음과 같습니다:
Program.cs 파일을 수정하고 백엔드 서비스를 다음 코드로 등록하세요:
전체 Program.cs 코드는 다음과 같습니다:
디버거는 다음과 같이 DNSPod 인터페이스를 일반적으로 호출할 수 있습니다:
웨이크 온 LAN
웨이크온-LAN은 WOL 또는 WoL로 약칭되며, 중국어로는 주로 '온라인 웨이크업'과 '원격 웨이크업' 기술로 번역됩니다. WOL은 기술이자 이 기술의 명세이며, 그 효과는 휴면 상태에 들어간 컴퓨터가 로컬 영역 네트워크(주로 이더넷)의 반대편을 통해 명령을 내릴 수 있게 하여 최대 절전 모드에서 깨어나거나 작동 상태로 재개하거나 종료 상태로 전환하도록 하는 것입니다. 또한 WOL 관련 기술에는 원격 종료 및 원격 재시작과 같은 원격 제어 메커니즘도 포함됩니다.
HomeController 컨트롤러를 수정하고 Wake-on-Network 인터페이스를 추가하면 코드는 다음과 같습니다:
Index.cshtml 페이지를 편집하고, MAC 주소 입력 박스와 버튼을 추가한 뒤 Ajax를 사용해 인터페이스를 호출하세요. 코드는 다음과 같습니다:
아래 설명과 같이 프로젝트를 시작하세요:
라즈베리 파이에 배치됨
VS 2022를 사용해 프로젝트를 릴리스할 때, 아래에 표시된 대로 라즈베리 파이의 /home/pi/wol 폴더에 릴리스 패키지를 업로드하세요:
/etc/systemd/system 폴더 아래에 새로운 nbddns.service 파일을 만들고 프로젝트를 리눅스 서비스로 등록하세요. 다음과 같습니다:
nbddns 서비스를 시작하고 다음 명령어로 부팅을 자동 시작 설정하세요:
다음 그림에 표시된 서비스 상태를 확인하세요:
마지막으로, 라우터 설정에서항구 매핑그리고 도메인 이름과 매핑된 엑스트라넷 포트를 통해 제 휴대폰에 접근했습니다4G 네트워크 사용직접적라즈베리 파이 위에 배포된 ASP.NET Core 앱에 접근할 수 있습니다, 아래 그림에서 볼 수 있습니다:
(끝)
|