【个人服务器搭建教程】用多余的主机搭建一个公网可访问的服务器

个人服务器搭建教程

  • 前言
  • Part 1:光猫改桥接通过路由器拨号上网
  • 一、 获取光猫超级管理员账号密码
  • 二、 光猫改桥接模式
  • 三、 开启IPV6
  • Part 2:搭建服务器
  • 一、 制作PVE安装U盘
  • 二、 给服务器安装PVE系统
  • 三、 在PVE系统内安装Centos
  • 四、 在PVE系统内安装Debian
  • Part 3:各种疑难杂症
  • CentOS 7 yum无法使用解决方法
  • linux 磁盘扩容
  • 方案一
  • 方案二
  • PVE设置IPv6
  • PVE开启vGPU支持
  • 前言

    前段时间家里电脑更新换代,多余的零件刚好可以组一台主机出来,就想尝试着搭建一台公网可以访问的个人服务器。通过万能的互联网,查询了很多资料,尝试了N多方法后终于搭建成功。

    以下是当前我所用到的硬件及网络环境,其他设备的小伙伴可以参考:

  • 宽带:移动千兆?
  • 光猫:移动家庭网关 H50G
  • 路由器:TP-Link TL-R470GP-AC
  • U盘:废物堆里翻出的2G金士顿
  • 服务器主机:东拼西凑一台能正常开机的主机
  • Part 1:光猫改桥接通过路由器拨号上网

    一、 获取光猫超级管理员账号密码

    1. 先找到光猫,记下背面的终端配置地址、用户名、密码(建议咔嚓拍照)
    2. 浏览器输入终端配置地址:192.168.1.1,并使用上一步获取的用户名和密码登录
    3. 网络–>远程管理–>认证
    4. 记录password
    5. 拿牙签捅光猫后面的reset孔,不要松掉,看光猫表面,灯全亮一次(不能松),等待5-30秒后灯全亮两次后松开(这款光猫就是这样,一共亮三次后才算完全恢复出厂设置,一次是重置而已)。
    6. 电脑用网线直连光猫LAN口(因为这款光猫无wifi)
    7. 浏览器输入终端配置地址:192.168.1.1,使用移动默认超级用户登录(账号:CMCCAdmin,密码:aDm8H%MdA
    8. 安全–>Telnet配置
    9. 勾选启用WAN侧Telnet
    10. 勾选启用LAN侧Telnet
    11. 记录用户名密码
    12. 网络–>远程管理–>认证
    13. 输入上面第3步记录的password
    14. 点确认(等待下发数据完成)
    15. 下发数据完成后管理员密码变成随机了,用默认超级管理员肯定进不去
    16. 使用Telnet连接光猫:开始–>运行(没有就Windows键+R)
    17. 输入cmd↩︎

    18. 弹出命令行窗口输入telnet 192.168.1.1↩︎

    19. 如果提示'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件。则需要先开启Telnet客户端(控制面板–>所有控制面板项–>程序和功能–>启用或关闭 Windows 功能–>勾选Telnet客户端–>确定–>等待安装完成)

    20. 输入上面第7步获取的Telnet用户名密码登录

    21. 通过Telnet修改超级管理员账号密码
    22. 完成上一步Telnet客户端登录后,标识符变成~$了,接下来需要提权
    23. 输入su↩︎
    24. 输入密码aDm8H%MdA↩︎
    25. 当标识符变成/#时,说明提权成功
    26. 输入下面指令,会弹出一很多包括user、CMCCAdmin等账号,但是都是******,可以不用管
      sidbg 1 DB p DevAuthInfo
      
    27. 修改超级管理员账号 ( CMCCAdmin可自定义 )
      sidbg 1 DB set DevAuthInfo 0 User CMCCAdmin
      
    28. 修改超级管理员密码 (aDm8H%MdA可自定义 )
      sidbg 1 DB set DevAuthInfo 0 Pass aDm8H%MdA
      
    29. 完成上述操作后就可以使用新的超级管理员账号登录光猫了

    二、 光猫改桥接模式

    1. 使用超级管理员账号密码登录192.168.1.1
    2. 网络–>宽带设置,可以看到一个PPPOE模式,将使能勾去掉,端口绑定也取消打勾,记下自己的VLAN ID然后点击修改
      查看密码用F12,改写type="password"–>type="text"记录下自己的宽带拨号账号及密码
    3. 新建WAN连接
    4. IP协议版本:IPv4/v6
    5. 模式:桥模式
    6. 使能:打勾
    7. 端口绑定:LAN 1234可以全打勾(意思是四个LAN全可以拨号)
    8. DHCP服务使能:去掉打勾
    9. 桥类型 :IP BRIDGE
    10. 业务模式:INTERNET
    11. VLAN 模式:改写(tag)
    12. VLAN ID:填写刚才记下的VLAN
    13. 点击修改
    14. 进入路由器管理后台192.168.0.1,基本设置–>WAN设置,上面第2步偷看到的账号和密码,保存

    三、 开启IPV6

    1. 登录路由器管理后台192.168.0.1
    2. 基本设置–>WAN设置
    3. IP协议类型:IPv6
    4. 状态:启用
    5. 复用IPv4拨号链路:打勾
    6. 保存
    7. 基本设置–>LAN设置
    8. IP协议类型:IPv6
    9. 状态:启用
    10. 前缀授权接口:WAN
    11. 验证https://ipw.cn/ipv6/

    Part 2:搭建服务器

    在确保IPv6配置完成的情况下,可以放心大胆的搭建服务器了。
    服务器的话我选择安装pve,然后在里面创建虚拟服务器

    一、 制作PVE安装U盘

    1. 翻出那个2G的典藏版U盘,插到电脑上
    2. 根据自己系统下载安装U盘烧录软件BalenaEtcher https://github.com/balena-io/etcher/releases
    3. 下载PVE的ISO镜像 https://www.proxmox.com/en/downloads
    4. 选择ISO镜像–>选择U盘–>一键烧录
      ⚠️烧录完成后系统会无法识别U盘,千万不要格式化!千万不要格式化!千万不要格式化

    二、 给服务器安装PVE系统

    1. 将U盘插到服务器电脑上(最好先连上网线),BIOS里设置U盘优先启动
    2. 进入PVE安装界面,选择第一个Install Proxmox VE (Graphical)↩︎(图形化安装界面)
    3. 右下角I agree
    4. 选择安装盘Next
    5. 选择时区及键盘Next,如果没有识别出来,如下图填写
    6. 填写root用户访问密码,Email填写自己的邮箱Next
    7. 修改主机名,IP地址、网关、DNS服务器在联网状态下是自动带出的Next
    8. 确认信息后安装Install
    9. 安装完成后会自动重启,这个时候可以把U盘拔掉了。
    10. 根据提示在局域网内另一台电脑浏览器输入https://192.168.0.28:8006/就可以访问服务器的PVE管理系统了(提示你的连接不是专用连接点开高级–>继续访问
    11. 登录用户名root,密码是安装时设定的,下面语言可以选择中文。(登录成功后提示无有效订阅,这个不用管,直接叉掉)

    三、 在PVE系统内安装Centos

    1. 下载Centos镜像
    2. 阿里云开源镜像站:https://mirrors.aliyun.com/centos
    3. 北京大学开源镜像站:https://mirrors.pku.edu.cn/centos
    4. 将下载好的镜像上传至PVE,local(pve)–>ISO镜像–>上传
    5. 创建虚拟机,给虚拟机起个名称,开机自启动看自己情况是否勾上 下一步
    6. 操作系统选择刚刚上传的ISO镜像 下一步
    7. 系统保持默认 下一步
    8. 磁盘空间按需要调整 下一步
    9. CPU按需要调整 下一步
    10. 内存按需调整 下一步
    11. 网络看情况修改网卡模型 下一步
    12. 确认后完成
    13. 启动虚拟机,凭多年经验完成Centos系统的安装

    四、 在PVE系统内安装Debian

    1. 官方下载镜像https://www.debian.org
    2. 同上面 CentOS 一样在 pve 中上传镜像文件并创建虚拟机
    3. 详细安装过程

    Part 3:各种疑难杂症

    CentOS 7 yum无法使用解决方法

    由于CentOS 7仓库已经被归档,当前的镜像地址无法找到所需的文件
    进入/etc/yum.repos.d目录下找到CentOS-Base.repo修改前记得备份哦

    # CentOS-Base.repo
    #
    # The mirror system uses the connecting IP address of the client and the
    # update status of each mirror to pick mirrors that are updated to and
    # geographically close to the client.  You should use this for CentOS updates
    # unless you are manually picking other mirrors.
    #
    # If the mirrorlist= does not work for you, as a fall back you can try the 
    # remarked out baseurl= line instead.
    #
    #
     
    [base]
    name=CentOS-$releasever - Base
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
    #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
    #baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
    baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
     
    #released updates 
    [updates]
    name=CentOS-$releasever - Updates
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
    #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
    #baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
    baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
     
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
    #$baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
    #baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
    baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
     
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
    #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
    #baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
    baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    

    修改完后依次执行

    sudo yum clean all
    sudo yum makecache
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    sudo yum clean all
    sudo yum makecache
    

    参考:CentOS 7 yum无法使用解决方法Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=

    linux 磁盘扩容

    方案一
    1. 查看磁盘空间
    root@debian:~# fdisk -l
    Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors
    Disk model: QEMU HARDDISK   
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0xa1263a9c
    
    Device     Boot   Start      End Sectors  Size Id Type
    /dev/sda1  *       2048   999423  997376  487M 83 Linux
    /dev/sda2       1001470 10483711 9482242  4.5G  5 Extended
    /dev/sda5       1001472 10483711 9482240  4.5G 8e Linux LVM
    
    
    Disk /dev/mapper/debian--vg-root: 3.56 GiB, 3825205248 bytes, 7471104 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/mapper/debian--vg-swap_1: 980 MiB, 1027604480 bytes, 2007040 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    1. 磁盘分区
    fdisk /dev/sda
    

    之后分别按

  • n:创建一个新的磁盘
  • p:主分区
  • ↩︎:盘符(默认)
  • ↩︎:起始位置
  • ↩︎:结束位置
  • w:保存
  • root@debian:~# fdisk /dev/sda
    
    Welcome to fdisk (util-linux 2.38.1).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    This disk is currently in use - repartitioning is probably a bad idea.
    It's recommended to umount all file systems, and swapoff all swap
    partitions on this disk.
    
    
    Command (m for help): n
    Partition type
       p   primary (1 primary, 1 extended, 2 free)
       l   logical (numbered from 5)
    Select (default p): p
    Partition number (3,4, default 3): 
    First sector (10483712-1048575999, default 10483712): 
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (10483712-1048575999, default 1048575999): 
    
    Created a new partition 3 of type 'Linux' and of size 495 GiB.
    
    Command (m for help): w
    The partition table has been altered.
    Syncing disks.
    

    执行完成后可以再次执行fdisk -l查看新增出来的盘符

    1. 初始化
    pvcreate /dev/sda3
    

    其中/dev/sda3为新增的盘符

    root@debian:~# pvcreate /dev/sda3
      Physical volume "/dev/sda3" successfully created.
    
    1. 扩展卷组
      执行vgdisplay查看卷组信息
    root@debian:~# vgdisplay
      --- Volume group ---
      VG Name               debian-vg
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  3
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                2
      Open LV               2
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               <4.52 GiB
      PE Size               4.00 MiB
      Total PE              1157
      Alloc PE / Size       1157 / <4.52 GiB
      Free  PE / Size       0 / 0   
      VG UUID               dGcbvo-HCEY-y1NK-Ur0h-Jcz3-GrIJ-jrGJRo
    
    vgextend debian-vg /dev/sda3
    

    这里的debian-vg对应的是卷组信息中的VG Name/dev/sda3为新增的盘符

    root@debian:~# vgextend debian-vg /dev/sda3
      Volume group "debian-vg" successfully extended
    
    1. 扩容
      执行df -lh查看挂载位置
    root@debian:~# df -lh
    Filesystem                   Size  Used Avail Use% Mounted on
    udev                         1.9G     0  1.9G   0% /dev
    tmpfs                        392M  532K  392M   1% /run
    /dev/mapper/debian--vg-root  3.5G  2.1G  1.2G  64% /
    tmpfs                        2.0G     0  2.0G   0% /dev/shm
    tmpfs                        5.0M     0  5.0M   0% /run/lock
    /dev/sda1                    455M   59M  371M  14% /boot
    tmpfs                        392M     0  392M   0% /run/user/0
    
    lvextend -l +100%FREE /dev/mapper/debian--vg-root /dev/sda3
    

    /dev/mapper/debian--vg-root对应的是Mounted on根路径//dev/sda3为新增的盘符

    root@debian:~# lvextend -l +100%FREE /dev/mapper/debian--vg-root /dev/sda3
      Size of logical volume debian-vg/root changed from 3.56 GiB (912 extents) to 498.56 GiB (127632 extents).
      Logical volume debian-vg/root successfully resized.
    
    1. 运行cat /etc/fstab确认磁盘分区文件系统类型后执行
    root@debian:~# cat /etc/fstab
    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # systemd generates mount units based on this file, see systemd.mount(5).
    # Please run 'systemctl daemon-reload' after making changes here.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    /dev/mapper/debian--vg-root /               ext4    errors=remount-ro 0       1
    # /boot was on /dev/sda1 during installation
    UUID=dbb51c98-f3cb-4bc7-a6bc-4df422115c4b /boot           ext2    defaults        0       2
    /dev/mapper/debian--vg-swap_1 none            swap    sw              0       0
    /dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
    
  • ext文件系统
  • resize2fs /dev/mapper/debian--vg-root
    
  • XFS文件系统
  • xfs_growfs /dev/mapper/debian--vg-root
    

    /dev/mapper/debian--vg-root对应的是Mounted on根路径/

    root@debian:~# resize2fs /dev/mapper/debian--vg-root
    resize2fs 1.47.0 (5-Feb-2023)
    Filesystem at /dev/mapper/debian--vg-root is mounted on /; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 63
    The filesystem on /dev/mapper/debian--vg-root is now 130695168 (4k) blocks long.
    
    1. 验证:执行df -lh
    root@debian:~# df -lh
    Filesystem                   Size  Used Avail Use% Mounted on
    udev                         1.9G     0  1.9G   0% /dev
    tmpfs                        392M  532K  392M   1% /run
    /dev/mapper/debian--vg-root  491G  2.1G  469G   1% /
    tmpfs                        2.0G     0  2.0G   0% /dev/shm
    tmpfs                        5.0M     0  5.0M   0% /run/lock
    /dev/sda1                    455M   59M  371M  14% /boot
    tmpfs                        392M     0  392M   0% /run/user/0
    
    方案二
    1. 首先确保安装好parted
    # CentOS
    yum install parted
    
    # Debian
    apt install parted
    
    1. 查看分区情况
    fdisk -l
    
    1. 使用 parted 磁盘管理工具
    parted /dev/sda
    
  • 打印出分区信息
  • print
    
  • 进行扩容操作
  • resizepart 2 100%
    
  • 退出
  • quit
    
    1. 更新物理卷
    pvresize /dev/sda2
    
    1. 指定逻辑卷的大小(df -h 查看 /dev/mapper/debian–vg-root 具体位置)
    lvresize --extents +100%FREE --resizefs /dev/mapper/debian--vg-root 
    

    PVE设置IPv6

    使用SSH工具连接PVE服务器
    /etc/sysctl.conf文件当中添加如下信息

    net.ipv6.conf.all.accept_ra=2
    net.ipv6.conf.default.accept_ra=2
    net.ipv6.conf.vmbr0.accept_ra=2
    net.ipv6.conf.all.autoconf=1
    net.ipv6.conf.default.autoconf=1
    net.ipv6.conf.vmbr0.autoconf=1
    

    重启PVE,这样外网就可以通过IPv6地址直接访问PEV及虚拟服务器了(大概!?@)

    参考:pve设置IPv6

    PVE开启vGPU支持

    暂时没找到可行的方案

    作者:格物的顾

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【个人服务器搭建教程】用多余的主机搭建一个公网可访问的服务器

    发表回复