The representation of Fork in Github is a git configuration with some server side logics for Pull Requests features.
Commands to simulate a github fork in git commands:
git clone externalrepo
git remote rename origin external
create a empty repositories (could be any server, but when you use github fork is create in your account)
git remote add origin yourownrepo
git push origin
This is the basic git commands to simulate a fork, and yes a fork live in a server because a git only local is useless.
The extra feature from github is know that your repo is a fork of the original repo to automatically make pull request easy.
Extra information
One pull request is only a notification to original repository to see a specific branch on your repo and integrate:
You can simulate a pull request acceptance with the next git commands:
git add remote pr11111 yourownrepo
git checkout originalbranch //to be integrated
git pull pr11111 yourbranch //the branch requested to pull
git merge pr11111 yourbranch