常用于中小企业内部网络开发, 如外网服务器负责网络转发到内部公司网络服务器, 将数据功能转发到内网服务器当中,将数据在广域网缩小成局域网处理.
这里采用 tinc 来搭建内网局域网, 首先这里假设外网服务器 111.111.111.111 来做外网路由, 也就是外网服务器.
注意这里最好对外公网暴露好端口号作为路由接入端口, 建议加入以 7000 做网段, 预留好端口 7000 来做其他内网服务器接入口,而 7001-7999 则是需要暴露转发的服务.
同时这里注意开启内核转发:
1234567891011# 查看 ip_forward 转发是否开启sysctl -a|grep ip_forward # 首次开启sudo echo 1 > /proc/sys/net/ipv4/ip_forward# 启用 tun 设备sudo modprobe tun# 确认是否启用成功ls /dev/net/tun
这里 Ubuntu 环境来做发行版环境, 首先可以安装 tinc :
1sudo apt install tinc # 安装 tinc, 主网服务器和子网服务器都要
这里可以查 ...
这里采用 Ubuntu 的 apt 源安装方式, 所以直接采用最简单部署即可.
直接最快安装:
12# 安装 samba 服务sudo apt install samba
常规来说内网 samba 服务都是基于局域网, 所以内网的话只需要进行公网直接开放即可.
这里还需要准备个系统账号(smb)负责进行服务管理:
123456# 创建不允许登录的账户sudo useradd smb -s /sbin/nologin# 设置 smb 管理账户密码进行最高管理# 实际上内网全部人都有可以读写删除等, 没什么其他意义sudo smbpasswd -a smb
账号信息配置之后就是设置硬盘空间来放置文件, 这里本人服务器挂载了 /storage 新硬盘, 所以文件都是放置于此:
123sudo mkdir /storage/smb # 创建目录放置sudo chown -R smb:smb /storage/smb # 目录权限sudo chmod -R 777 /storage/smb # 读写权限
配置修改最后就是完成配置修改: /etc/samba/smb.conf
1234567 ...
有时候个人服务器需要用到 BT 离线下载功能, 这种时候就需要用到 aria2 来搭建服务.
以下服务搭建基于 debian 系的发行版, redhat 其实流程也差不多
这里直接通过命令行安装配置就行:
12345# 安装配置软件sudo apt install aria2# 查看软件版本, 我这边目前版本是 1.37.0aria2c --version
确认目前完版本之后就是就是准备为服务配置系统相关设置.
系统管理这里需要创建新的 Linux 账号来托管下载权限, 并且设置主要配置文件夹:
12345678910111213141516# 构建名为 aria2 的系统托管用户# -r: 系统账号# -s: 不允许 shell 交互sudo useradd -r -s /sbin/nologin aria2# 默认会创建 aria2 组, 但是如果安装 nginx 需要暴露访问的话建议加入 www-data 组sudo usermod -aG www-data aria2# 确认用户分配的信息id aria2# 创建系统配置目录和文件和赋予权限sudo mkdir /etc/ ...
安装组件:
12345# 安装 nginx+扩展功能sudo apt install nginx nginx-extras# 安装 git/gitweb/fcgisudo apt install git gitweb fcgiwrap
默认创建 git 用户, 所有功能基于 git 用户操作
创建项目信息和权限:
123456789101112131415161718# 设置全局用户/邮箱git config --global user.name 'MeteorCat'git config --global user.email '[email protected]'# 加入权限组, 把 nginx 默认组追加到 gitsudo usermod -a -G git www-data# 创建代码仓库目录, 这里创建根目录sudo mkdir /projectssudo chown -R git:git /projects# 部署配置, 用于测试cd /projectssudo -u git git init --bare mix-game. ...
日常使用的 NoSql 数据库基本上以 Redis 为主, 基于此直接采用源安装配置:
安装配置这里可以参考官方文档配置: 官方文档
直接选择对应系统配置源:
12345# 安装证书curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg# 写入源信息echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
此时源配置已经完成, 就可以准备安装服务:
123# 安装系统服务sudo apt-get updatesudo apt-get install redis
服务会自动配置到系统之中, 直接采用系统去调取服务:
123su ...
以下简称 PgSQL
PGSql原生支持 NoSQL 的特性, 不过却是关系型数据库; 其JSON的性能不输给 MongoDB, 算是现在值得在生产环境之中投入使用的数据库.
安装配置这里可以参考官方文档配置: 官方文档
直接选择对应系统配置源:
这里直接配置 Debian11 的源( postgresql-12 ):
12345# Create the file repository configuration:sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'# Import the repository signing key:wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
此时源配置已经完成, ...
安装确认这里首先需要保证内部已经处理好 openssh:
1sudo apt install openssh-server
确认已经挂起生效监听默认的 22 端口:
1sudo lsof -i |grep ssh
这里出现 *:ssh(LISTEN) 就说明已经有服务开始监听.
生成公密钥首先绝对不要使用 root 来作为外部SSH访问用户, 而是应该创建非 root 用户来作为登录账号.
这里以我内部的 meteorcat 账号为例, 假设目前登录是该账号
这里需要说明目前主要密钥加密类型:
rsa (常规的加密类型, 兼容性最好)
ecdsa (新版本的加密类型, 安全性最高,处理最快, 老版本ssh不兼容)
一般来说新系统推荐使用 ecdsa 加密(注意这里不需要 sudo):
1ssh-keygen -t ecdsa -C "MeteorCat"
这里 -C 设置备注信息, 用于标注密钥的大概信息来配合个生成的公钥使用, 键入之后他会有以下内容:
12345678910111213Generating public/private ecdsa ...
这里采用 Debian 发行版作为主要安装部署, 其他发行版配置基本一直.
直接按照 ISO镜像安装 之后来配置, 按照过程之后除了 root 用户之外还设定了 meteorcat 这个账户.
分配权限默认除了 root 用户创建的管理账户是没有权限, 且没有 sudo 功能的, 按照常用方法需要配置处理(首先要在 root账户之中安装好内部所需软件 ):
12# 基于 root 账户apt install sudo vim
之后就是分配 sudo 给目前其他账号权限:
12# 直接运行命令visudo
在打开的文件内部追加内容:
12root ALL=(ALL:ALL) ALL # 在这行记录内容之下追加自己创建的账号meteorcat ALL=(ALL:ALL) ALL
这里默认的编辑器可能是nano, 默认 Ctrl + O 保存, Ctrl + X 退出
现在可以安全切换到非 root 账号进行处理.
加入 sudo 组
这里是比较复杂的账号权限创建
创建常规账号:
1234# useradd 声明创建账号# -m 声明创建账号需要 /home/ 建立家目录# ...