Frp 내망 관통 실현

3390 단어
우선 당신은 인터넷 서버가 있어야 합니다. 만약에 인터넷 서버가 없다면NATAPP를 사용할 수 있습니다. 이 강좌를 참고하기 전에ngrok로 실현하려고 했는데 어떻게 교차 번역된 가방에 문제가 있어서 계속 실행할 수 없고 이해할 수 없습니다.윈도우즈 버전을 컴파일한 것은 아마도 서명이 없어서 실행할 수 없었을 것입니다. 마지막에 마지못해 윈도우즈subsystem-ubuntu를 사용하여 Linuxamd64 버전을 실행했습니다.하지만 큐비보드는 어쩔 수 없었다.친구에게 프프를 추천받을 때까지.스스로 해탈감을 느끼다.프로젝트 홈 페이지는 GitHub 참조
GitHub 자습서 참조 링크
GitHub의 강좌는 이미 상세하고 중국어이기 때문에 여기는 설치 부분을 생략하고 어떻게 켜는지 직접 이야기합니다.클라이언트를 설정하려면frps를frpc로 바꾸면 됩니다.
2017-12-17 업데이트 frps.서비스 파일 내용은 다음과 같이 쓸 수 있습니다.
[Unit]
Description=fraps daemon
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/Path/to/frps -c /Path/to/frps.ini
Restart=always
RestartSec=1min

[Install]
WantedBy=multi-user.target

시작이 실패했을 때 자동으로 서비스를 재개할 수 있도록 합니다.그리고 frps.ini에서 [common]에 이러한 행을 추가할 수 있습니다(frp_v0.11.0 이상 버전 지원)
[common]
login_fail_exit = false

이렇게 하면 서버 연결이 실패할 때 종료하지 않고 30s마다 연결을 시도하여 서비스의 안정성을 증가시킨다

시스템 d로 자동 켜기 제어

cd /lib/systemd/system/ && sudo touch frps.servicesudo nano frps.service에 다음 내용 추가
[Unit]
Description=fraps daemon
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
# ( xxx )
ExecStart=xxx/frps -c xxx/frps.ini

[Install]
WantedBy=multi-user.target

그리고frpssudo systemctl start frps응용자계sudo systemctl enable frps시스템d에 대한 지식이 있으면 스스로 구글

init를 사용합니다.d 서비스 제어 수호 프로세스 및 시작

sudo nano /etc/init.d/frps에 다음과 같이 붙여넣습니다.
#!/bin/sh

### BEGIN INIT INFO
# Provides:          frpc
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: frpc service deamon
# Description:       frpc service daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/frpc
DAEMON_OPTS=-c\ /etc/frp/frpc.ini
NAME=frpc
USER=eric

set -e
. /lib/lsb/init-functions

start() {
        echo -n "Starting $NAME: "
        start-stop-daemon --start \
                --user $USER \
                -m --pidfile /var/run/$NAME.pid \
                -b --exec $DAEMON -- $DAEMON_OPTS || true
        echo "$NAME."
}

stop() {
        echo -n "Stopping $NAME: "
        start-stop-daemon --stop \
                --pidfile /var/run/$NAME.pid || true
        echo "$NAME."
}

status() {
        status_of_proc -p /var/run/$NAME.pid "$DAEMON" $NAME && exit 0 || exit $?
}

case "$1" in
start)
  start
        ;;
stop)
  stop
        ;;
status)
  status
        ;;
restart)
  stop
  sleep 2
  start
        ;;
*)
        echo "Usage: $NAME {start|stop|restart|status}"
        exit 1
        ;;
esac
exit 0

Ctrl+X 저장 종료 후 chmod +x /etc/init.d/frps 다시 사용chkconfig frps on 서비스를 켜기 시작 목록에 추가

rc를 사용합니다.local 제어 켜기 시작 (권장되지 않음)

sudo nano /etc/rc.local 마지막 줄에 추가
/opt/frp_0.12.0_linux_amd64/frps -c /opt/frp_0.12.0_linux_amd64/frps.ini

총결산


systemd의 장점을 말해 봅시다. 오늘 제가 frpc를 디버깅할 때 frpc의 프로필을 바꾸고 프로세스를 kill했습니다. 그리고 저는 기숙사에 있는 판자를 연결할 수 없습니다. 233333에서 systemd를 사용하면 우아하게 입력할 수 있습니다 sudo systemctl restart frpc. 그리고 조금만 기다려서 다시 연결을 시도하면 이렇게 철저하게 끊기지 않을 것입니다.

좋은 웹페이지 즐겨찾기